介绍
在本教程中,我们将安装Mailpile在Ubuntu 14.04,快速,安全,美观的webmail客户端,。
像Mailpile这样的webmail客户端是确保您可以从任何地方访问您的电子邮件,而不需要配置标准电子邮件客户端的麻烦。 Mailpile只是一个邮件客户端,这意味着它只能管理现有电子邮件帐户。
在本教程结束时,您将有一个全功能的Droplet运行Mailpile与Nginx作为反向代理。
请记住在本教程Mailpile仍处于测试阶段 ,这意味着你可能会遇到bug和其他困难沿途。 它不会在会话之间保存您的信息。 (也就是说,每次重新启动Mailpile服务时,您都必须重新输入帐户详细信息。)
它也缺乏一个简单的方法作为服务运行。 默认情况下,它只作为SSH会话中的交互式脚本运行。 我们已经包括一个使用屏幕在后台运行的Upstart脚本,所以你可以离开webmail客户端,只要你想。 但是,这不是推荐用于生产。
先决条件
在我们开始之前,我们需要一些东西:
- Droplet运行Ubuntu 14.04。 我们建议至少512 MB的内存用于邮件设置处理只有几个邮箱。 如果您预计有多个用户,您可能需要增加大小
- 具有root访问权限的用户。 请参见本教程关于建立一个用户在Ubuntu 14.04Sudo访问指令
- 用于确保邮件安全的SSL证书。 你可以购买一个来自Namecheap或其他证书颁发机构。 如果你不想花任何钱,你也可以自己制作与使用nginx或者得到一个startssl如果
- 域名
- 如果你有一个域就绪,创建一条A记录指向你的Droplet(例如mailpile。example.com)。 有关与DigitalOcean设置DNS记录的说明,请参阅在DNS本教程
记下SSL证书和关键位置。 如果你按照教程来制作证书以便与Nginx一起使用,他们将位于:
- /etc/nginx/ssl/nginx.crt
- /etc/nginx/ssl/nginx.key
而已! 如果你有一切准备好,继续第一步。
第1步 - 下载邮件
在本节中,我们将为Mailpile安装准备我们的工作环境。
首先,我们需要登录我们的Droplet。 如果你以前没有使用SSH,请在SSH本教程 。 确保您正在登录具有sudo访问权限的用户。
首先我们需要安装Git。 我们将使用Git从GitHub克隆Mailpile源。
更新Ubuntu的软件包列表:
sudo apt-get update
安装Git:
sudo apt-get install git
现在Git已经安装,让我们把我们的目录改变到我们可以工作的地方。 在这种情况下,我们使用/var
目录:
cd /var
克隆Mailpile:
sudo git clone https://github.com/mailpile/Mailpile.git
我们需要sudo命令让Git的创造中的目录/var
,这是一个系统目录。
我们几乎准备好让Mailpile运行。 继续第2步开始处理一些更多的要求。
第2步 - 配置邮件的要求
在本节中,我们将获得Mailpile的安装和配置要求。
首先,让我们安装pip。 pip是一个Python包管理器,有一些技巧:
sudo apt-get -y install python-pip
pip将允许我们更容易地安装Mailpile的要求。 你会在一分钟后看到,但首先我们需要安装更多的东西。
接下来我们需要安装lxml。 lxml是一个通常由pip安装的Mailpile要求,但是我们发现它会导致安装失败,原因不明。 因此,我们将使用apt-get安装它:
sudo apt-get install python-lxml
只需要手动安装几个软件包,包括GnuPG和OpenSSL。 这些将为我们的邮件创建一个更安全的环境。 其中一些可能会默认安装,但我们会确保以防万一:
sudo apt-get install gnupg openssl libssl-dev
现在切换到Mailpile的目录:
cd /var/Mailpile
我们现在已经准备好利用pip的能力来安装我们的其他要求。
Mailpile包括一个称为文件requirements.txt
,这基本上是要求的列表。 pip有能力通过这个列表,并自动安装每一个他们。 所以让我们做到这一点:
sudo pip install -r /var/Mailpile/requirements.txt
你完成了。 所有要求已安装,Mailpile已准备就绪。 但在我们做之前,我们需要采取一些额外的措施来收紧我们的安全。
第3步 - 使用Nginx配置反向代理
在本节中,我们将配置Nginx作为Mailpile的反向代理。 这将使Mailpile更安全,允许我们使用SSL证书,并使其更容易访问webmail客户端。
nginx的,而不是通过访问访问Mailpile https:// example.com :33411
,你可以使用https://mailpile. example.com
。 让我们开始吧!
首先,我们需要安装Nginx,因为这将是大部分工作。 所以,让我们得到Nginx之前的任何东西:
sudo apt-get install nginx
现在Nginx已经安装,我们可以设置反向代理。 让我们编辑Nginx的配置,告诉它将我们的子域路由到Mailpile。
我们要删除原来的Nginx配置文件,因为它填充了一堆我们不需要的东西。 但首先,让我们做一个备份。 首先做目录:
sudo mkdir /home/backup
现在做备份:
sudo cp -b /etc/nginx/sites-enabled/default /home/backup
现在我们可以自由删除该文件,不会有后果:
sudo rm /etc/nginx/sites-available/default
让我们确保它实际上已经走了:
ls /etc/nginx/sites-available/
如果你刚刚安装了Nginx,该命令应该什么也不返回。
现在创建一个新文件:
sudo nano /etc/nginx/sites-available/default
现在是时候配置逆向代理。 让我们从第一部分开始。 将以下内容添加到文件的开头(我们将解释它在一秒钟内执行的操作):
server {
listen 80;
return 301 https://$host$request_uri;
}
这告诉Nginx将它获取的请求重定向到HTTPS。 但在现实中,它会尝试重定向到尚不存在的东西。 让我们创建一个地方去:
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_certificate
和ssl_certificate_key
以配合您的证书和密钥的位置。
我们刚刚输入的告诉Nginx在端口443(端口网站使用SSL访问,而不是端口80)上侦听,应用我们的SSL证书,并打开SSL。 现在,我们需要为我们重定向到的新的HTTPS网址实际提供服务,并启用SSL。 我们会这样做的。
在前两个块下面添加以下内容:
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;
}
}
当你完成后,完成的配置文件应该看起来像这样:
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;
}
}
如果没有替换默认站点,而是创建了具有不同名称的服务器块文件,则需要使用以下命令启用它:
sudo ln -s /etc/nginx/sites-available/mailpile.example.com /etc/nginx/sites-enabled/
默认网站应已启用。
请阅读此文章有关的Nginx服务器块如果您想了解更多信息。
现在重新启动Nginx重新加载配置:
sudo service nginx restart
而已。 现在Mailpile是在准备要达到https://mailpile. example.com
如果您使用自签名证书,则可能必须接受SSL警告。
此外,在访问http://mailpile. example.com
将自动重定向到该网站的SSL版本。
我们尚未运行Mailpile,因此,如果您现在访问这些网址,您将看到502错误网关错误。 此错误的最常见原因是Mailpile应用程序未在运行。
继续执行第4步以运行Mailpile。
第4步 - 配置和运行邮件
在本节中,我们将启动Mailpile,并将其配置为使用我们的逆向代理。
确保我们在正确的目录:
cd /var/Mailpile
要运行Mailpile,请输入:
./mp
您现在可以通过命令行或Web界面开始浏览Mailpile。
一句警告:停止后Mailpile将不保存设置。 所以,在花时间配置它之前,你可能想要完成可选的下一步运行它像一个服务。
Mailpile现在应该住在https://mailpile. example.com
,甚至使用SSL证书重定向到HTTPS。 恭喜!
您可以使用CTRL-C
然后键入quit
退出Mailpile。
可选 - 使用Upstart创建邮件服务
为了确保Mailpile始终处于活动状态并准备好处理邮件,您可以使用Upstart将Mailpile转换为服务。 按照此说明的精彩教程。
由于Mailpile是测试版,它还没有正确的守护进程。 它还需要一个交互式命令行,所以你不能只是直接运行Python脚本。 这个Upstart脚本运行Python应用程序通过服务的方式哈克 屏幕 :
sudo nano /etc/init/mailpile.conf
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
此脚本将启动Mailpile并保持它,只要屏幕会话正在运行。 它不能正确地停止Screen会话,所以如果你想停止Mailpile,你必须手动停止Screen会话。
使用此脚本,您可以使用以下命令启动Mailpile:
sudo start mailpile
这将导致所谓的12345 .mailpile_init由root用户所拥有的屏幕会话。
但是,其他Upstart命令将不工作。 您必须手动结束Screen会话。 此外,如果服务崩溃或已停止,您必须重新启动并重置所有偏好设置。
第4步 - Mailpile入门
这部分涵盖了从Webmail界面基本Mailpile使用,以https://mailpile. example.com
这是你第一次访问Mailpile时看到的屏幕。
从下拉菜单中选择一种语言。
点击开始按钮。
创建新密码,然后输入两次。
点击使用Mailpile按钮开始 。
登录屏幕:请输入您刚刚创建的密码。
添加一个新的帐户+添加帐户按钮。
从这里,您需要输入您拥有的邮件帐户的详细信息。 您应该输入该特定邮件帐户的电子邮件地址和密码。 然后Mailpile将尝试使用这些凭据连接到您的帐户,这可能需要几分钟。
您也可以手动输入发送邮件和接收邮件的凭证,如果Mailpile想不通出来本身。
Gmail阻止Mailpile使用您的Gmail帐户凭据,因此您无法将Gmail帐户添加到Mailpile - 至少不容易。
登录后,您将看到此屏幕:
尝试将您添加到Mailpile的帐户的测试电子邮件发送和接收到其他电子邮件帐户。 如果这是成功的,你会知道Mailpile正在使用您的电子邮件地址。
其他Mailpile功能
Mailpile还提供各种加密选项:
结论
要开始使用Mailpile,请参见常见问题解答 。
对于更多的配置选项,运行help
从Mailpile命令行。
恭喜,您现在有了自己的webmail客户端,Mailpile,在Ubuntu 14.04 Droplet上运行。 它完全配备SSL,并自动重定向到您的网站的HTTPS版本。 您现在可以设置您的电子邮件帐户,并管理您的联系人,邮件,类别等Mailpile的漂亮的界面。 玩的开心!