介绍
在本教程中,我们将安装 Mailpile,一个快速,安全和美丽的网信客户端,在Ubuntu 14.04上。
像 Mailpile 这样的 Web 邮件客户端是确保您可以从任何地方访问电子邮件的绝佳方法,而无需设置标准电子邮件客户端的麻烦。
到本教程结束时,您将有一个功能齐全的 Droplet 运行 Mailpile 与 Nginx 作为反向代理。
请记住,在整个教程中,Mailpile 仍然处于测试阶段,这意味着您可能会在途中遇到错误和其他困难,它不会在会话之间保存您的信息。
它也缺乏一个简单的方式来运行作为一个服务. 默认情况下,它只在你的SSH会话中运行作为一个交互式脚本. 我们已经包括了一个Upstart脚本,该脚本使用屏幕在背景中运行,所以你可以随心所欲地离开Webmail客户端。
前提条件
在我们开始之前,我们需要一些东西:
- 一个 Droplet 运行 Ubuntu 14.04 . 我们建议至少 512 MB 的 RAM 用于一个 Mailpile 设置,仅处理几个邮箱。 如果您期望超过几位用户,您可能想增加大小
- 有 root 访问的用户。 请参阅 本教程 关于在 Ubuntu 14.04
- 上设置一个 sudo 访问的用户的说明(https://andsky.com/tech/tutorials/how-to-add-and-delete-users-on-an-ubuntu-14-04-vps) 或从一个 StartSSL
- 一个域名
- 如果您已经准备好一个域名,请创建一个记录,以指向您的 Droin.explet 邮件(例子上为 Nginx) 或从一个 [StartSSL](https://www.startssl.com/
记下您的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 按钮开始。
登录屏幕:请输入您刚刚创建的密码。
使用 ** + 添加帐户 ** 按钮添加新帐户。
从这里,您需要输入您拥有的邮件帐户的详细信息. 您应该输入该特定邮件帐户的电子邮件地址和密码. Mailpile 将尝试使用这些凭证连接到您的帐户,这可能需要几分钟。
您还可以手动输入发送邮件
和接收邮件
的凭证,如果Mailpile无法自行找出它们。
<$>[注] Gmail 阻止 Mailpile 使用您的 Gmail 帐户凭证,因此您无法将 Gmail 帐户添加到 Mailpile — 至少不是很容易。
一旦您登录,您将被呈现这个屏幕:
尝试将您添加到 Mailpile 的帐户的测试电子邮件发送和接收到不同的电子邮件帐户. 如果成功,您将知道 Mailpile 正在使用您的电子邮件地址。
** 其他 Mailpile 功能**
Mailpile 还提供各种加密选项:
结论
要开始使用 Mailpile,请参阅 FAQ。
若要查看更多配置选项,请从 Mailpile 命令行运行帮助
。
恭喜,你现在有自己的网邮客户端,Mailpile,在Ubuntu 14.04 Droplet上运行。它完全配备了SSL,并自动重定向到你的网站的HTTPS版本。你现在可以设置你的电子邮件帐户并管理你的联系人,邮件,类别和更多与Mailpile的美丽的界面。有趣!