前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上安装Mailpile

如何在Ubuntu 14.04上安装Mailpile

原创
作者头像
黑色技术
修改2018-10-09 10:02:16
1.8K0
修改2018-10-09 10:02:16
举报

介绍

在本教程中,我们将在Ubuntu 14.04上安装Mailpile,一个快速,安全,漂亮的Webmail客户端。

像Mailpile这样的Webmail客户端是确保您可以从任何地方访问电子邮件,而无需配置标准电子邮件客户端。Mailpile只是一个邮件客户端,这意味着它只管理现有的邮件帐户。

在本教程结束时,您将拥有一个运行Mailpile的全功能CVM,其中Nginx作为反向代理。

在整个教程中请记住,Mailpile仍处于测试阶段,这意味着您可能会遇到错误和其他困难。它不会在会话之间保存您的信息。(也就是说,每次重新启动Mailpile服务时,您都必须重新输入帐户详细信息。)

它也缺乏一种简单的服务运行方式。默认情况下,它仅在SSH会话中作为交互式脚本运行。我们已经包含了一个Upstart脚本,该脚本使用Screen在后台运行它,因此您可以根据需要保留Webmail客户端。但是,不建议将其用于生产。

准备

在我们开始之前,我们需要一些东西:

记下您的SSL证书和密钥位置。如果您按照教程制作证书以便与Nginx一起使用,它们将位于:

  • /etc/nginx/ssl/nginx.crt
  • /etc/nginx/ssl/nginx.key

如果您已准备就绪,请继续执行第一步。

第一步 - 下载Mailpile

在本节中,我们将为Mailpile安装准备我们的工作环境。

首先,我们需要登录CVM。确保您使用sudo访问权限登录用户。

首先我们需要安装Git。我们将使用Git从GitHub克隆Mailpile源代码。

更新Ubuntu的包列表:

代码语言:javascript
复制
sudo apt-get update

安装Git:

代码语言:javascript
复制
sudo apt-get install git

现在安装了Git,让我们将目录更改为我们可以解决的问题。在这种情况下,我们将使用/var目录:

代码语言:javascript
复制
cd /var

克隆邮件:

代码语言:javascript
复制
sudo git clone https://github.com/mailpile/Mailpile.git

我们需要sudo命令来允许Git在其中创建一个目录/var,这是一个系统目录。

我们已经准备好让Mailpile运行了。继续执行第二步以开始处理更多要求。

第二步 - 配置Mailpile的要求

在本节中,我们将安装和配置Mailpile的要求。

首先,让我们安装pip。pip是一个Python包管理器,它有一些技巧:

代码语言:javascript
复制
sudo apt-get -y install python-pip

pip将允许我们更轻松地安装Mailpile的要求。你会在一分钟内看到,但首先我们需要安装一些东西。

接下来我们需要安装lxml。lxml是一个通常由pip实现的Mailpile要求,但是我们发现它导致安装因未知原因而失败。因此,我们将使用apt-get安装它:

代码语言:javascript
复制
sudo apt-get install python-lxml

只需要手动安装几个软件包,包括GnuPG和OpenSSL。这些将为我们的邮件创建更安全的环境。其中一些可能会默认安装,但我们会确保以防万一:

代码语言:javascript
复制
sudo apt-get install gnupg openssl libssl-dev

现在转到Mailpile的目录:

代码语言:javascript
复制
cd /var/Mailpile

我们现在已准备好利用pip的能力来安装我们的其他要求。

Mailpile包含一个名为requirements.txt的文件,它基本上是一个需求列表。pip能够读取这个列表并自动安装它们中的每一个。那就让我们这样做:

代码语言:javascript
复制
sudo pip install -r /var/Mailpile/requirements.txt

你完成了。已安装所有要求,并且可以使用Mailpile。但在此之前,我们需要采取一些额外措施来加强我们的安全。

第三步 - 使用Nginx配置反向代理

在本节中,我们将Nginx配置为Mailpile的反向代理。这将使Mailpile更安全,允许我们使用SSL证书,并使其更容易访问Webmail客户端。

使用Nginx,您可以使用,而不是通过访问Mailpile 。让我们开始吧!https://example.com:33411``https://mailpile.example.com

首先,我们需要安装Nginx,因为那将是大部分工作。所以让我们先得到Nginx:

代码语言:javascript
复制
sudo apt-get install nginx

现在已经安装了Nginx,我们可以设置反向代理。让我们编辑Nginx的配置,告诉它将我们的子域路由到Mailpile。

我们想要删除原始的Nginx配置文件,因为它充满了我们不需要的一堆东西。但首先,让我们做一个备份。首先制作目录:

代码语言:javascript
复制
sudo mkdir /home/backup

现在进行备份:

代码语言:javascript
复制
sudo cp -b /etc/nginx/sites-enabled/default /home/backup

现在我们可以自由删除文件而不会产生任何后果:

代码语言:javascript
复制
sudo rm /etc/nginx/sites-available/default

让我们确保它实际上已经消失了:

代码语言:javascript
复制
ls /etc/nginx/sites-available/

如果您刚刚安装了Nginx,该命令应该不返回任何内容。

现在创建一个新文件:

代码语言:javascript
复制
sudo nano /etc/nginx/sites-available/default

现在是配置反向代理的时候了。让我们从第一部分开始。将以下内容添加到文件的开头(我们将在一秒钟内解释它的作用):

代码语言:javascript
复制
server {
    listen 80;
    return 301 https://$host$request_uri;
}

这告诉Nginx将它获得的请求重定向到HTTPS。但实际上,它会尝试重定向到尚不存在的东西。让我们为它创造一个空间:

代码语言:javascript
复制
server {
​
    listen 443;
    server_name mailpile.example.com;
​
    ssl_certificate           /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key       /etc/nginx/ssl/nginx.key;
​
    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
​
    access_log            /var/log/nginx/mailpile.access.log;

注意:确保您的证书和密钥位于/etc/nginx/ssl/nginx.crt/etc/nginx/ssl/nginx.key。否则,请更新旁边的路径ssl_certificatessl_certificate_key匹配您的证书和密钥位置。

我们刚刚输入的内容告诉Nginx监听端口443(具有SSL访问权限的端口网站,而不是端口80),应用我们的SSL证书,并打开SSL。现在我们需要实际为我们重定向到的新HTTPS URL提供服务并启用SSL。我们接下来会这样做。

在前两个块下面添加以下内容:

代码语言:javascript
复制
    location / {
​
      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
​
      # Fix the "It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://localhost:33411;
      proxy_read_timeout  90;
​
      proxy_redirect      http://localhost:33411 https://webmail.example.com;
    }
   }

完成后,完成的配置文件应如下所示:

代码语言:javascript
复制
server {
    listen 80;
    return 301 https://$host$request_uri;
}
​
server {
​
    listen 443;
    server_name mailpile.example.com;
​
    ssl_certificate           /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key       /etc/nginx/ssl/nginx.key;
​
    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;
​
    access_log            /var/log/nginx/mailpile.access.log;
​
    location / {
​
      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
​
      # Fix the "It appears that your reverse proxy set up is broken" error.
      proxy_pass          http://localhost:33411;
      proxy_read_timeout  90;
​
      proxy_redirect      http://localhost:33411 https://webmail.example.com;
    }
   }

如果您没有替换默认站点,而是创建了具有不同名称的服务器块文件,则需要使用如下命令启用它:

代码语言:javascript
复制
sudo ln -s /etc/nginx/sites-available/mailpile.example.com /etc/nginx/sites-enabled/

应该已启用默认站点。

现在重新启动Nginx以重新加载配置:

代码语言:javascript
复制
sudo service nginx restart

现在Mailpile准备好可以连接https://mailpile.example.com了。如果您使用自签名证书,则可能必须接受SSL警告。

此外,访问http://mailpile.example.com将自动重定向到站点的SSL版本。

我们还没有运行Mailpile,所以如果您现在访问这些URL,您将看到502 Bad Gateway错误。此错误的最常见原因是Mailpile应用程序未运行。

继续执行第四步以运行Mailpile。

第四步 - 配置和运行Mailpile

在本节中,我们将启动Mailpile,并将其配置为与我们的反向代理一起使用。

确保我们在正确的目录中:

代码语言:javascript
复制
cd /var/Mailpile

要运行Mailpile,请输入:

代码语言:javascript
复制
./mp

您现在可以通过命令行或Web界面开始探索Mailpile。

一句警告: Mailpile 在停止后不会保存您的设置。因此,在花时间配置它之前,您可能希望完成像服务一样运行它的可选下一步。

Mailpile现在连接https://mailpile.example.com了,甚至可以使用您的SSL证书重定向到HTTPS。恭喜!

您可以使用CTRL-C然后输入quit以退出Mailpile。

可选 - 使用Upstart使Mailpile成为服务

为确保Mailpile始终处于活动状态并准备好处理您的邮件,您可以使用Upstart将Mailpile转换为服务。

由于Mailpile处于测试阶段,因此尚未进行适当的守护。它还需要一个交互式命令行,因此您不能直接运行Python脚本。这个Upstart脚本是一种通过Screen运行Python应用程序作为服务的hacky方式:

代码语言:javascript
复制
sudo nano /etc/init/mailpile.conf

文件内容如下:

代码语言:javascript
复制
description "Mailpile Webmail Client"
author      "Sharon Campbell"
​
start on filesystem or runlevel [2345]
stop on shutdown
​
script
​
    echo $$ > /var/run/mailpile.pid
    exec /usr/bin/screen -dmS mailpile_init /var/Mailpile/mp
​
end script
​
pre-start script
    echo "[`date`] Mailpile Starting" >> /var/log/mailpile.log
end script
​
pre-stop script
    rm /var/run/mailpile.pid
    echo "[`date`] Mailpile Stopping" >> /var/log/mailpile.log
end script

只要Screen会话正在运行,此脚本将启动Mailpile并保持其状态。它没有正确停止屏幕会话,因此如果要停止Mailpile,则必须手动停止屏幕会话。

使用此脚本,您可以使用以下命令启动Mailpile:

代码语言:javascript
复制
sudo start mailpile

这将导致root用户拥有一个名为12345 .mailpile_init的Screen会话。

但是,其他Upstart命令将不起作用。您必须手动结束屏幕会话。此外,如果服务崩溃或停止,您将不得不重新启动它并重置所有首选项。

第五步 - Mailpile入门

本节介绍从Webmail界面中使用的基本Mailpile,打开链接https://mailpile.example.com

这是您第一次访问Mailpile时会看到的屏幕。

从下拉菜单中选择一种语言。

单击“ 开始”按钮。

创建一个新密码,然后输入两次。

单击“ 使用Mailpile开始”按钮。

登录屏幕:请输入您刚刚创建的密码。

使用+添加帐户按钮添加新帐户。

从这里,您需要输入您拥有的邮件帐户的详细信息。您应该输入该特定邮件帐户的电子邮件地址和密码。然后,Mailpile会尝试使用这些凭据连接到您的帐户,这可能需要几分钟时间。

如果Mailpile无法自行确定,您也可以手动输入“ 发送邮件接收邮件”

Gmail阻止Mailpile使用您的Gmail帐户凭据,因此您无法将Gmail帐户添加到Mailpile。

登录后,您将看到以下屏幕:

尝试向您添加到Mailpile的帐户发送和接收测试电子邮件到其他电子邮件帐户。如果成功,您将知道Mailpile正在使用您的电子邮件地址。

其他Mailpile功能

Mailpile还提供各种加密选项:

结论

要开始使用Mailpile,请参阅常见问题解答

有关更多配置选项,请从Mailpile命令行运行help

恭喜,您现在拥有自己的Webmail客户端Mailpile,在Ubuntu 14.04 CVM上运行。它配备了SSL,并自动重定向到您网站的HTTPS版本。您现在可以使用Mailpile漂亮的界面设置电子邮件帐户并管理您的联系人,邮件和类别等。

想要了解更多关于Ubuntu的开源信息教程,请前往腾讯云+社区学习更多知识。

参考文献:《How To Install Mailpile on Ubuntu 14.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 准备
  • 第一步 - 下载Mailpile
  • 第二步 - 配置Mailpile的要求
  • 第三步 - 使用Nginx配置反向代理
  • 第四步 - 配置和运行Mailpile
    • 可选 - 使用Upstart使Mailpile成为服务
    • 第五步 - Mailpile入门
    • 结论
    相关产品与服务
    SSL 证书
    腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档