如何在Ubuntu 14.04安装Mailpile

介绍

在本教程中,我们将安装Mailpile在Ubuntu 14.04,快速,安全,美观的webmail客户端,。

Mailpile的初始启动屏幕

像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

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

/ etc / nginx / sites-available / default
server {
    listen 80;
    return 301 https://$host$request_uri;
}

这告诉Nginx将它获取的请求重定向到HTTPS。 但在现实中,它会尝试重定向到尚不存在的东西。 让我们创建一个地方去:

/ etc / nginx / sites-available / default
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网址实际提供服务,并启用SSL。 我们会这样做的。

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

/ etc / nginx / sites-available / default
    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;
    }
   }

当你完成后,完成的配置文件应该看起来像这样:

/ etc / nginx / sites-available / default
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
/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_initroot用户所拥有的屏幕会话。

但是,其他Upstart命令将不工作。 您必须手动结束Screen会话。 此外,如果服务崩溃或已停止,您必须重新启动并重置所有偏好设置。

第4步 - Mailpile入门

这部分涵盖了从Webmail界面基本Mailpile使用,以https://mailpile. example.com

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

Mailpile的初始启动屏幕

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

点击开始按钮。

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

点击使用Mailpile按钮开始

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

登录屏幕

添加一个新的帐户+添加帐户按钮。

添加新帐户

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

您也可以手动输入发送邮件接收邮件的凭证,如果Mailpile想不通出来本身。

Gmail阻止Mailpile使用您的Gmail帐户凭据,因此您无法将Gmail帐户添加到Mailpile - 至少不容易。

登录后,您将看到此屏幕:

邮件收件箱

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

其他Mailpile功能

Mailpile还提供各种加密选项:

Mailpile的加密选项

结论

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

对于更多的配置选项,运行help从Mailpile命令行。

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏