部署Poste邮件服务器

今天我们要给大家介绍一款非常有趣的邮件服务器程序,Poste. 作为邮件服务器领域的新秀,Poste近年来得到了持续的关注。它具有非常高的稳定性,并提供非常出众的管理面板,能够轻易实现邮件收发、多域名控制、邮箱容量控制、邮件杀毒、邮件过滤以及Webmail等基础功能。同时,Poste还提供了投递统计分析、客户端自动适配、一键安装SSL、邮件转发、邮件别名、Catch-All等相当有用的功能。另外,Poste邮件服务器基于Docker搭建,其过程非常简单,不像Zimbra之类的邮件服务器需要比较复杂的运行和维护能力。

下面我就来介绍一下如何安装与配置Poste邮件服务器。本文作者为香菇肥牛,文章链接为https://qing.su/article/139.html 转载需经过本人同意且需注明原文链接,谢谢。

1, 系统环境配置

首先我们介绍一下服务器的运行环境。由于基于Docker, 因此大部分Linux发行版均可以运行Poste. 运行的Poste占用内存在800 MB左右,因此建议选择一个内存1 GB或者以上的VPS进行搭建。Poste仅支持64位操作系统。

在安装任何邮件服务器之前,我们需要配置好hostname. 本文我们以mx.qing.su为例,当您在SSH中执行hostname命令时,应当看到mx的回显;当您在SSH中执行hostname -f命令时,应当看到mx.qing.su的回显。若您未配置好hostname, 请不要继续。

开始安装之前,建议您先设置好一部分DNS. 我们需要设置这样的几条记录 (请用您自己的域名替代下文中的qing.su):

  1. qing.su. A Any_IP
  2. mx.qing.su. A 88.88.88.88
  3. qing.su. MX mx.qing.su. 10
  4. mail.qing.su. CNAME mx.qing.su.
  5. smtp.qing.su. CNAME mx.qing.su.
  6. imap.qing.su. CNAME mx.qing.su.
  7. qing.su. IN TXT “v=spf1 mx ~all”
  8. _dmarc.qing.su. IN TXT “v=DMARC1; p=none; rua=mailto:dmarc-reports@qing.su”
  9. 88.88.88.88 PTR mx.qing.su

其中,4, 5, 6, 8项为可选,第九项为域名PTR, 需要您在自己的服务器提供商处设定。

2, 安装Poste

配置好以上的DNS, 我们就可以开始安装Poste了。之前说过,Poste全部程序均基于Docker, 因此我们需要先安装Docker. 以Ubuntu 16.04 LTS 64 bit为例,执行下面的命令安装Docker.

1
2
3
4
5
6
7
8
9
10
11
12
apt-get update
apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

apt-get update
apt-get install docker-ce

安装好Docker后,执行下面的命令安装Poste.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run \
-p 25:25 \
-p 80:80 \
-p 110:110 \
-p 143:143 \
-p 443:443 \
-p 587:587 \
-p 993:993 \
-p 995:995 \
-v /etc/localtime:/etc/localtime:ro \
-v /srv/poste/data:/data \
--name "PosteServ" \
-h "mx.qing.su" \
-t analogic/poste.io

如果没有报错,Poste应该已经安装完毕并开始运行了。整个过程仅需2-3分钟。

3, 配置Poste

安装好Poste之后,我们就可以登录mx.example.com来配置Poste了。初次登录,会提示设置服务器名和管理员邮箱与密码,如下图。

 

 

设置完毕后,即可看到美观大气的后台管理界面。用过MailChannels等邮件平台的朋友想必会对顶部的投递统计非常熟悉。

 

 

刚安装好Poste的时候,SSL还没有配置,我们可以使用Poste内置的Let’s Encrypt一键签发证书。点击左侧System settings — TLS certificate, 然后点击绿色的issue free letsencrypt.org certificate, 输入我们的域名,即可签发并自动安装证书,非常方便。您也可以手动申请并安装证书。

 

 

证书签发完毕后关闭浏览器并重新登录,即可看到生效的SSL.

Poste支持无限数量的域名和邮箱。我们点击左侧的Virtual Domains即可添加域名,如下图。

 

 

点击左侧Email accounts即可添加无限数量的邮箱。

 

 

我们还可以设置DKIM签名。点击Virtual domains, 并选择您需要设置的域名,然后在DKIM key一栏中可以点击create new key, 将生成的记录填写到对应域名的DNS中即可。

 

 

还有很多其他的功能,这里就不作过多的介绍了,欢迎大家自己去尝试探索。总之,Poste是一个小而精的邮件服务器,其功能丰富,收发信可靠,非常适合个人、团体以及企业使用。如果您在安装与使用的过程中遇到了问题,欢迎在本文下面留言,我将尽力解答。

本文作者为香菇肥牛,本文链接为https://qing.su/article/139.html, 转载需经过本人同意且需注明原文链接,谢谢。

 

98 thoughts on “部署Poste邮件服务器”

  1. 咦,上一篇文章我发的评论去哪了。。。
    大佬,这篇文章和Zimbra的那篇可以转载吗?会注明原文链接和作者。

    Reply
  2. 邮件服务器部署不是什么难事,我觉得难在要找到合适的服务器(还要有钱),顺便转载一下大佬的文章(0

    Reply
    • 单独签发 mx.abc.com成功,加上smtp.pop.imap等Alternative names一起申请就报错,smtp等cname域名不使用ssl不影响使用吧?

      Reply
    • 签发不成功的原因可能是没有添加好对应的解析,或者某个解析还没有生效。CNAME不影响SSL的,只要正确添加即可。

      Reply
  3. 查看个人邮件webmail入口是什么?
    另外docker需要持久化和写入磁盘避免docker死了数据全丢,怎么怎么解决?

    Reply
    • webmail入口是mx.example.com/mail, 如果将mail.example.com CNAME到mx.example.com, 可以直接通过mail.example.com访问webmail.

      他们使用数据卷,可以直接备份,不用担心数据丢失。

      Reply
  4. Centos下的docker run和对应打开端口和ubuntu好像不一致,这也是为什么希望能出个centos版本的理由.

    现在安装docker都很简单了.

    Reply
    • 这就比较奇怪了,CentOS下面docker run和端口的命令和ubuntu上面并没有什么差别,可能你需要用sudo来运行吧,我手头没有CentOS来测试,以前用的时候并没有什么问题……Zimbra更适合团队或者企业使用,Poste适合个人或者小团体使用,两个都是非常不错的邮箱程序。

      Reply
    • 你是在阿里云上装的吗?我在阿里云上装有问题,不知道有没有经验可以借鉴一下。

      Reply
  5. 有可能是,回头我测试CentOS看看.

    我看了下Zimbra面板,看起来好像功能更多点,回头安装对比下看看(poste已经没问题)

    Reply
  6. 我帮你把always加上,这样重启后也可以自动起来,

    docker run –restart=always\
    -p 25:25 \
    -p 80:80 \
    -p 110:110 \
    -p 143:143 \
    -p 443:443 \
    -p 587:587 \
    -p 993:993 \
    -p 995:995 \
    -v /etc/localtime:/etc/localtime:ro \
    -v /allmails/data:/data \
    –name “mx.example.com” \
    -h “mx.example.com” \
    -t analogic/poste.io

    Reply
  7. 不知道博主研究过k8s来部署docker集群没,这个适合鸡多的,有了docker很多方便好多的.
    方便发qq到我邮箱么?

    Reply
  8. docker exec -it asdjldjsf 无法进入container, 怎么解决? 因为需要手动把let’s encrypt的证书配置上,默认申请的无法直接使用.

    Reply
  9. 现在又可以进去了 docker exec -it asdlfjadlfj bash
    这点很奇怪, 我设置下let’s encrypte,看看

    Reply
  10. 感谢博主分享的教程,按教程搭建好了,但只能收邮件,发邮件的话,发送给A邮箱显示是发成功了,但A邮箱一直收不到邮件,gmail、hotmail、163等等都试过了,都是收不到邮件,广告邮件、垃圾邮件里面也没有,博主能不能指点一下,问题大概出现在哪里么?我用的是CentOS 7,GCE主机。

    Reply
      • 原来如此……我查了一下GCE官方文档,25端口封闭了,但465端口还是开放的,想请问一下博主,怎么修改poste.io邮件系统25端口为465端口?非常感谢!

        Reply
          • 我用的是阿里云服务器,对内可以发邮件,对外发接收不到邮件,25端口不能用,但是465可以,怎么修改poste.io邮件系统25端口为465端口?非常感谢!

        • 你这边解决了吗?

          我用的是阿里云服务器,对内可以发邮件,对外发接收不到邮件,25端口不能用,但是465可以,怎么修改poste.io邮件系统25端口为465端口?非常感谢!

          Reply
  11. 肥牛博主,这里仍然有个问题, 就是无法拿到let’s encrypt证书,导致访问一直是未加密的.

    可否把拿到证书的详细写下? 另外可否再补上进入到docker中再通过certbo拿到let’s 证书,以及自动更新cron语句?

    Reply
  12. 请教一下:poste能批量设置不同邮箱自动转发邮件吗?比如我poste上有500个邮箱,想把所有受到的邮件转发到Gmail,除了挨个设置,有其他办法吗

    Reply
  13. 博主注册个tumblr能收到验证邮件吗?照着教程搞收不到验证邮件,发出去的也进垃圾箱。

    Reply
    • 可能和服务器有关吧,不知为何收不到邮件,我这里没有任何问题。发信进垃圾箱请检查DNS配置和服务器IP是否在黑名单里。

      Reply
  14. 第一次整这个,不知道那个dns配置在哪里配置呀?为什么把(mx.qing.su. A 88.88.88.88)解析到88.88.88.88呀?另外那个第九项怎么配置?在哪里配置(阿里服务器)?

    Reply
  15. 搭建完成了,但是不知道为什么不能使用foxmail来做客户端(通过pop3模式),设置不了,一直提示“邮箱地址或者密码错误”?有没有这样操作过,遇到同样问题的伙伴?

    Reply
  16. 楼主知不知道这个系统有没有邮件分组的功能,可能按组发送邮件,我没发现。

    Reply
  17. 您好,希望能够转载此文章,并承诺在文章中注明您的版权链接,希望您能够准予。

    Reply
  18. ”SSH中执行hostname命令时,应当看到mx的回显;当您在SSH中执行hostname -f命令时,应当看到mx.qing.su的回显”一个是mx回显,一个是mx.qing.qu回显??(望回复)

    Reply
  19. 博主,弱弱的问一下,我在centos7上安装是成功的,用新建的邮箱发送邮件,对方也能收到,但是却收不进邮件,不知道哪里设置有问题。另外,好像有catch-all功能,如何设置呢?

    Reply
  20. 部署了一个,但是发现只能收信不能发信,web界面显示发信成功,但是收件方收不到。
    用foxmail等客户端发信显示smtp账户密码错误,不知道什么原因。

    Reply
  21. 谢谢楼主分享,需要请教一个问题,因为我80端口已经被用, 用其他端口如何设置 -p 8080:8080
    修改容器中nginx的listen 8080 重启后又恢复到80端口了,请问有什么办法吗?谢谢!

    Reply
  22. 在网页端能够收发邮件,但是用SMTP就不行,显示账号密码错误,请问大佬怎么解决

    Reply
  23. 请问这个邮箱要建立吗:dmarc-reports@qing.su,如果不建立,我去哪里查看。我是建了类似的一个邮箱。另外域名设置处有一个域垃圾箱(Domain bin),指向一个邮箱,请教这和上面的有什么区别?谢谢。

    Reply
  24. 请教一个新问题,添加的第二个域名怎样申请TLS(我服务器两个IP,分别对应不同的域名)。谢谢

    Reply
  25. 请问,服务器能收到邮件,但一直堆积在队列里,一直尝试,但发不出去,博主知道是什么原因吗?

    Reply

Leave a Comment