如何在 Ubuntu 14.04 上安装 Mailpile

介绍

在本教程中,我们将安装 Mailpile,一个快速,安全和美丽的网信客户端,在Ubuntu 14.04上。

Mailpile’s Initial Launch Screen

像 Mailpile 这样的 Web 邮件客户端是确保您可以从任何地方访问电子邮件的绝佳方法,而无需设置标准电子邮件客户端的麻烦。

到本教程结束时,您将有一个功能齐全的 Droplet 运行 Mailpile 与 Nginx 作为反向代理。

请记住,在整个教程中,Mailpile 仍然处于测试阶段,这意味着您可能会在途中遇到错误和其他困难,它不会在会话之间保存您的信息。

它也缺乏一个简单的方式来运行作为一个服务. 默认情况下,它只在你的SSH会话中运行作为一个交互式脚本. 我们已经包括了一个Upstart脚本,该脚本使用屏幕在背景中运行,所以你可以随心所欲地离开Webmail客户端。

前提条件

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

记下您的SSL证书和关键位置,如果您遵循了教程来制作用于 Nginx的证书,它们将位于:

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

就这样吧!如果你有所有准备好去,继续到第一步。

步骤1:下载邮件

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

首先,我们需要登录我们的Droplet。如果您以前没有使用过SSH,请参阅 这个SSH教程

首先我们需要安装Git,我们将使用Git来克隆来自GitHub的Mailpile源。

更新 Ubuntu 包列表:

1sudo apt-get update

安装 Git:

1sudo apt-get install git

现在Git已经安装了,让我们把我们的目录更改到我们可以工作的地方,在这种情况下,我们会使用‘/var’目录:

1cd /var

克隆邮件:

1sudo git clone https://github.com/mailpile/Mailpile.git

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

我們幾乎準備好執行 Mailpile. 進行步驟 2 開始處理更多要求。

步骤 2 — 配置 Mailpile 的要求

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

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

1sudo apt-get -y install python-pip

pip 将使我们更容易地安装 Mailpile 的要求. 你会在一分钟内看到如何,但首先我们需要安装一些其他东西。

接下来我们需要安装 lxml. lxml 是一个 Mailpile 要求,通常会通过 pip 安装,但我们发现它会导致安装因不明原因而失败。

1sudo apt-get install python-lxml

只需要手动安装几套软件包,包括 GnuPG 和 OpenSSL. 这些软件将为我们的邮件创建一个更安全的环境。

1sudo apt-get install gnupg openssl libssl-dev

现在更改到 Mailpile 的目录:

1cd /var/Mailpile

我们现在已经准备好利用Pip的能力来安装剩余的需求。

Mailpile 包含一个名为 requirements.txt 的文件,这基本上是一个要求列表。 pip 有能力通过这个列表阅读并自动安装它们中的每一个。

1sudo pip install -r /var/Mailpile/requirements.txt

所有要求已安装,Mailpile已准备好使用,但在我们完成之前,我们需要采取一些额外的步骤来加强我们的安全性。

步骤 3 — 使用 Nginx 配置反向代理

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

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

首先,我们需要安装 Nginx,因为这将是大部分的工作。

1sudo apt-get install nginx

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

我们想删除原始的 Nginx config 文件,因为它充满了我们不需要的东西。

1sudo mkdir /home/backup

现在做备份:

1sudo cp -b /etc/nginx/sites-enabled/default /home/backup

现在我们可以自由地删除文件,没有后果:

1sudo rm /etc/nginx/sites-available/default

让我们看看它真的消失了:

1ls /etc/nginx/sites-available/

如果您刚刚安装了 Nginx,则该命令不应该返回任何东西。

创建一个新的文件:

1sudo nano /etc/nginx/sites-available/default

现在是时候配置反向代理程序了,让我们从第一个部分开始,在文件开始时添加下列内容(我们将在一秒钟内解释它所做的事情):

1[label /etc/nginx/sites-available/default]
2server {
3    listen 80;
4    return 301 https://$host$request_uri;
5}

这告诉 Nginx 重定向它得到的请求到 HTTPS. 但实际上,它会尝试重定向到尚不存在的东西。

 1[label /etc/nginx/sites-available/default]
 2server {
 3
 4    listen 443;
 5    server_name mailpile.example.com;
 6
 7    ssl_certificate           /etc/nginx/ssl/nginx.crt;
 8    ssl_certificate_key       /etc/nginx/ssl/nginx.key;
 9
10    ssl on;
11    ssl_session_cache builtin:1000 shared:SSL:10m;
12    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
13    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
14    ssl_prefer_server_ciphers on;
15
16    access_log            /var/log/nginx/mailpile.access.log;

注意:请确保您的证书和密钥位于/etc/nginx/ssl/nginx.crt/etc/nginx/ssl/nginx.key

我们刚刚输入的内容告诉 Nginx 在端口 443 上倾听(端口网站具有 SSL 访问,而不是端口 80),应用我们的 SSL 证书,并打开 SSL。

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

 1[label /etc/nginx/sites-available/default]
 2    location / {
 3
 4      proxy_set_header Host $host;
 5      proxy_set_header X-Real-IP $remote_addr;
 6      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 7      proxy_set_header X-Forwarded-Proto $scheme;
 8
 9      # Fix the "It appears that your reverse proxy set up is broken" error.
10      proxy_pass http://localhost:33411;
11      proxy_read_timeout 90;
12
13      proxy_redirect http://localhost:33411 https://webmail.example.com;
14    }
15   }

完成后,完成的 config 文件应该看起来像这样:

 1[label /etc/nginx/sites-available/default]
 2server {
 3    listen 80;
 4    return 301 https://$host$request_uri;
 5}
 6
 7server {
 8
 9    listen 443;
10    server_name mailpile.example.com;
11
12    ssl_certificate           /etc/nginx/ssl/nginx.crt;
13    ssl_certificate_key       /etc/nginx/ssl/nginx.key;
14
15    ssl on;
16    ssl_session_cache builtin:1000 shared:SSL:10m;
17    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
18    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
19    ssl_prefer_server_ciphers on;
20
21    access_log            /var/log/nginx/mailpile.access.log;
22
23    location / {
24
25      proxy_set_header Host $host;
26      proxy_set_header X-Real-IP $remote_addr;
27      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
28      proxy_set_header X-Forwarded-Proto $scheme;
29
30      # Fix the "It appears that your reverse proxy set up is broken" error.
31      proxy_pass http://localhost:33411;
32      proxy_read_timeout 90;
33
34      proxy_redirect http://localhost:33411 https://webmail.example.com;
35    }
36   }

如果您没有更换默认站点,而是创建了一个用不同的名称的服务器封锁文件,则需要使用这样的命令启用它:

1sudo ln -s /etc/nginx/sites-available/mailpile.example.com /etc/nginx/sites-enabled/

默认网站应该已经启用。

请阅读这篇关于 Nginx 服务器块的文章(https://andsky.com/tech/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts),如果你想了解更多。

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

1sudo service nginx restart

现在 Mailpile 已准备好到达 https://mailpile.example.com. 如果您使用了自签证书,您可能需要接受 SSL 警告。

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

我们还没有运行 Mailpile,所以如果你现在访问这些 URL,你会看到一个 502 Bad Gateway 错误。

继续步骤 4 来运行 Mailpile。

步骤 4 – 配置和运行 Mailpile

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

确保我们在正确的目录:

1cd /var/Mailpile

要运行 Mailpile,请输入:

1./mp

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

<$>[警告] ** 一个警告词: ** Mailpile 在停止后不会保存您的设置,因此,在您花费时间配置它之前,您可能需要完成作为服务的可选下一步运行它。

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

您可以使用CTRL-C,然后键入quit,以终止 Mailpile。

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

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

由于 Mailpile 处于 beta 阶段,它还没有得到正确的解除,它还需要一个交互式命令行,所以你不能直接运行 Python 脚本。

1sudo nano /etc/init/mailpile.conf
 1[label /etc/init/mailpile.conf]
 2description "Mailpile Webmail Client"
 3author      "Sharon Campbell"
 4
 5start on filesystem or runlevel [2345]
 6stop on shutdown
 7
 8script
 9
10    echo $$ > /var/run/mailpile.pid
11    exec /usr/bin/screen -dmS mailpile_init /var/Mailpile/mp
12
13end script
14
15pre-start script
16    echo "[`date`] Mailpile Starting" >> /var/log/mailpile.log
17end script
18
19pre-stop script
20    rm /var/run/mailpile.pid
21    echo "[`date`] Mailpile Stopping" >> /var/log/mailpile.log
22end script

此脚本将启动 Mailpile,并保持它,只要屏幕会话正在运行. 它不会正确地停止屏幕会话,所以如果你想停止 Mailpile,你将不得不手动停止屏幕会话。

使用此脚本,您可以开始 Mailpile 使用:

1sudo start mailpile

这将导致一个名为 12345.mailpile_init 的屏幕会话,由 ** root** 用户拥有。

但是,其他 Upstart 命令不会起作用. 您将不得不手动终止屏幕会话. 此外,如果服务崩溃或停止,您将不得不重新启动它并重置所有偏好。

步骤 4 – 开始使用 Mailpile

本节涵盖了从 webmail 接口的基本 Mailpile 使用,在 https://mailpile.example.com

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

Mailpile’s Initial Launch Screen

从下载菜单中选择一个语言。

点击开始按钮。

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

点击使用 Mailpile 按钮开始。

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

The Login Screen

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

Add a New Account

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

您还可以手动输入发送邮件接收邮件的凭证,如果Mailpile无法自行找出它们。

<$>[注] Gmail 阻止 Mailpile 使用您的 Gmail 帐户凭证,因此您无法将 Gmail 帐户添加到 Mailpile — 至少不是很容易。

一旦您登录,您将被呈现这个屏幕:

Mailpile Inbox

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

** 其他 Mailpile 功能**

Mailpile 还提供各种加密选项:

Mailpile’s Encryption Options

结论

要开始使用 Mailpile,请参阅 FAQ

若要查看更多配置选项,请从 Mailpile 命令行运行帮助

恭喜,你现在有自己的网邮客户端,Mailpile,在Ubuntu 14.04 Droplet上运行。它完全配备了SSL,并自动重定向到你的网站的HTTPS版本。你现在可以设置你的电子邮件帐户并管理你的联系人,邮件,类别和更多与Mailpile的美丽的界面。有趣!

Published At
Categories with 技术
comments powered by Disqus