阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用Docker搭建poste,自建邮件服务器

458次阅读
一条评论

共计 2973 个字符,预计需要花费 8 分钟才能阅读完成。




自建邮件服务可以不受发件量限制,批量发件成本更低,但部署相对复杂,而且容易进垃圾箱。不过现在越来越多的服务商已经开发好了产品,支持一键部署等方式,极大降低了部署和使用难度。这次给各位小伙伴安利一款开源邮件服务 poste.

关于 poste

poste 是一款开源邮件服务软件,可以很方便的搭建:SMTP + IMAP + POP3 + 反垃圾邮件 + 防病毒 + Web 管理 + Web 电子邮件,支持以下特性。

  • SPF、DKIM、DMARC、SRS 的原生实现,带有简单的向导
  • 用于检测木马、病毒、恶意软件的防病毒引擎 (ClamAV)
  • 内置垃圾邮件过滤器(RSPAMD)
  • HTTPS 上的 Webmail 客户端(Roundcube)
  • 通过 Sieve 脚本进行电子邮件重定向、自动回复和其他过滤(电子邮件所有者管理,每个操作都可以编写脚本)
  • 用于限制邮箱空间或电子邮件数量的配额
  • 系统管理员、域管理员、电子邮件所有者具有不同权限的 Web 管理。
  • 内置 Microsoft 产品的自动发现功能,Thunderbird…
  • 帮助正确设置域和邮件服务器的诊断
  • SMTP – 端口 25、465 (TLS)、587
  • POP3 – 端口 110、995 (TLS)
  • IMAP – 端口 143、993 (TLS)
  • SSL TLS 无处不在!没有个人数据、电子邮件、登录信息通过互联网未加密。
  • 默认情况下,所有密码都存储为加盐 SHA512 哈希(5000 轮)。攻击者将很难破解您的密码。
  • 整个邮件服务器容器由 Docker 与其他应用程序隔离。

准备工作

  • 一台 VPS,有独立 IP
  • 支持 25 端口及邮件发送
  • 建议内存 2Gb 以上
  • 干净的 IP, 没有被墙, 没有被标记为垃圾 IP
  • 提前安装好 Docker

关于 Docker 安装可参考这篇文章《Linux 安装 Docker 与 Docker 常用命令》,如果您使用的 CentOS 7 系统,也可以直接使用 xiaoz 提供的 Docker 一键安装脚本。

#CentOS 一键安装 Docker
wget https://raw.githubusercontent.com/helloxz/shell/master/install_docker.sh && bash install_docker.sh

Docker 部署 poste

Docker 部署 poste,几乎不会影响你服务器上现有的服务,复制下面的命令执行:

docker run -d \
    -p 880:80 -p 8443:443 -p 25:25 -p 110:110 -p 143:143 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 4190:4190 \
    -e TZ=Asia/Shanghai \
    -v /data/mail-data:/data \
    --name "mailserver" \
    -h "mail.your-domain.com" \
    --restart=always \
    -t analogic/poste.io

参数含义如下:

  • 880/8443是 WEB 访问端口,为了避免和本地已有 WEB 服务(nginx 等)冲突,所以这里使用的 880/8443 作为 WEB 端口
  • TZ=Asia/Shanghai:设置容器为上海时区
  • /data/mail-data:本地数据目录,根据实际情况修改为服务器目录
  • mail.xxx.com:改成你自己的域名
  • --restart=always:容器异常时自动拉起

如果部署遇到 25 端口被占用,可通过 netstat -apn|grep 25 查看是否是 postfix 导致,CentOS 7 可卸载 postfix:

# 卸载 postfix
yum -y remove postfix

部署后访问 https://IP:8443/ 根据提示完成初始化设置。

DNS 设置

前往 DNS 服务商处,按照如下要求设置域名解析,否则邮件服务无法正常使用,其中:

  • your-domain.com:为你自己的域名
  • 1.2.3.4:为你的邮件服务器 IP
主机名 记录类型 记录值
mail.your-domain.com A 1.2.3.4
smtp.your-domain.com CNAME mail.your-domain.com
pop.your-domain.com CNAME mail.your-domain.com
imap.your-domain.com CNAME mail.your-domain.com
your-domain.com MX mail.your-domain.com
your-domain.com txt v=spf1 mx ~all

设置 DKIM 验证

在 poste 后台 – Virtual domains – 点击对应域名 – DKIM key – 创建 key,并按照要求设置 txt 记录解析。

设置 PTR 反向解析

PTR 记录,是电子邮件系统中的邮件交换记录的一种;另一种邮件交换记录是 A 记录(在 IPv4 协议中)或 AAAA 记录(在 IPv6 协议中)。PTR 记录常被用于反向地址解析。——摘自百度百科

域名解析到 IP 被称为正向解析,而 IP 指向到域名,则被称为反向解析,反向解析需要在主机服务商处进行操作,具体请咨询主机服务商。

比如 UltraVPS 可以直接在后台面板添加 PTR 反向解析,将 IP 指向到您的邮件服务器,如mail.your-domain.com

添加 SPF/DKIM/PTR 解析,可提高邮件可信度,从而降低邮件进入垃圾箱的几率,必不可少的关键步骤。

设置 TLS SSL

假如您的邮件域名为 mail.your-domain.com,需要对这个域名申请 SSL 证书,可参考《使用 acme.sh 申请 ZeroSSL 泛域名证书,Let’s Encrypt 替代品》 或者在其它服务商申请 SSL 证书。

获得 SSL 证书后,打开 poste 后台 – System settings – TLS Certificate – 选择证书文件进行上传,见截图。

SSL 提供商会自动将中级证书合并到了证书文件(比如腾讯云),因此中级证书那个选项可以和证书一致,然后点保存,保存后需要重启容器生效:docker restart mailserver

登录与管理

启用 SSL 后,可通过域名进行访问:https://mail.your-domain.com:8443/,默认是登录 webmail,可以在 webmail 发信、收信等操作。

如果需要登录系统管理,可将地址修改为https://mail.your-domain.com:8443/admin/login

邮件跑分测试

邮件跑分可以使用 https://www.mail-tester.com/ 这个工具,会检测你邮件存在的问题,并给出一定优化建议。当然这个工具得分并非绝对准确,结果只供参考。

个人建议

在准备自建邮件服务之前,有一些注意事项需要知晓,以下是一些个人经验总结,希望有所帮助。

  • 使用可信度较高的域名后缀,如.com/.net/.org,尽量避免使用各种奇怪的小众后缀
  • 使用英文字母的域名,尽量避免使用纯数字域名
  • 域名注册时间越长越好,最低注册时间建议大于 7 天
  • 使用一个干净的 IP,可通过 https://poste.io/dnsbl 查询
  • IP 支持 PTR 反向解析,需咨询主机商

最后

poste 相比其它自建邮件服务已经算比较简单的了,但步骤依然比较多。目前给其它小伙伴搭建的 poste,测试过一天发送 1w 邮件完全没有问题,但如果长期大量发送垃圾邮件,估计离拉黑也不远了,所以建议大家还是悠着点玩儿。

poste 官网:https://poste.io/

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计2973字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(一条评论)
验证码
mikesolar
2023-04-28 22:07:34 回复

捉个虫,需要加上-e “HTTPS_PORT=4433” 和-e “HTTP_PORT=8080″,并设置-p 8080:8080和-p 4433:4433

 Windows  Firefox  中国陕西省咸阳市电信
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中