摘要

本篇教程所用到的服务、设置请按需修改;本次站长所用的是一台1C1G配置的vps服务器拥有30GB硬盘空间100mbps带宽,域名使用本站域名apoptoxin4869.com

准备工作

  • 一台vps服务器

    • 配置要求至少1核心1GB内存10GB硬盘

    • 25号端口开放

    • 支持rdns

  • 一个域名

  • cloud flare账户

资源规划

由于邮件服务器的特殊性,个人不太建议部署在现有生产环境的vps中,实际上本站是这么做的,博客所用的服务器与邮件所用服务器各自独立

以下是本站所用的域名解析规划:

  • 根域名:apoptoxin4869.com解析到运行博客的服务器,IP地址是192.9.186.103

  • 二级域名:mail.apoptoxin4869.com解析到运行Email的服务器,IP地址是192.74.225.16

  • MX记录:名称输入@,邮件服务器输入mail.apoptoxin4869.com,ttl选择自动,优先级输入10

服务器设置

检测25端口是否开放

telnet 你的服务器IP 25

这里以本站mail服务器为例,如果输出结果类似以下内容,那就证明25端口是开放的

Trying 192.74.225.16...
Connected to 192.74.225.16.
Escape character is '^]'.
220 mail.apoptoxin4869.com ESMTP ready
Connection closed by foreign host.

如果输出一直卡在第一行:Trying 192.74.225.16... 那么就是25号端口被阻断,请检查服务器防火墙或者联系你的服务器服务商咨询25端口是否开放

服务器设置rDNS

nano /etc/hostname  #编辑hostname文件

192.74.225.16  mail.apoptoxin4869.com  #先填写服务器IP地址【请注意修改成您自己的服务器IP地址】,打两个空格,填写您的MX记录域名最后保存文件

输入hostname指令,检查hostname的输出是否包含你设置的MX域名记录,如果不是请修改

在服务器控制面板中设置主机名【也叫PTR或者rDNS,每一家主机服务商给的名称都有差异】

在cloud flare中设置PTR记录

#名称中的IP是服务器IP倒序输入,例如演示所用的IP是192.74.225.16,那么PTR中的记录应该从16开始,记为16.225.74.192,末尾带上参数".in-addr.arpa"
16.225.74.192.in-addr.arpa

#域名应该记录您的MX记录中设置的域名,TTL选择1小时

使用以下指令测试rDNS是否生效

dig -x 192.74.225.16  #执行该指令【请注意修改成您自己的服务器IP地址】

#如果得到以下输出则证明rDNS设置生效
; <<>> DiG 9.16.48-Ubuntu <<>> -x 192.74.225.16
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11170
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;16.225.74.192.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
16.225.74.192.in-addr.arpa. 21600 IN    PTR     mail.apoptoxin4869.com.  #主要查看PTR记录之后是否输出您的MX记录域名

;; Query time: 20 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Mar 08 01:47:46 CST 2024
;; MSG SIZE  rcvd: 91

Mailu安装

为了方便服务器管理和数据备份,本站首先在Email服务器安装了1panel面板,如果您也希望这么做,可以在这个页面查看安装脚本:https://1panel.cn/

mailu提供了网页版的程序预配置,请打开https://setup.mailu.io/2.0进行信息预配置填写,下方站长也给出了本次所用的所有设置以供参考,可阅读文字或浏览下方图片,请点击放大图片或在新窗口中打开图片放大以浏览细节

  • Mailu storage path:程序路径,可以自定义填写

  • Main mail domain and server display name:您的根域名

  • Postmaster local part:管理员,保持默认

  • Choose how you wish to handle security:选择TLS证书获取方式,直接使用默认的从lets encrypt自动获取

  • Website name:网站名称

  • Linked Website URL:网站链接,这里填写您的MX记录的域名即可,注意在域名开始处加上https://安装成功后将使用该域名访问您的邮件管理后台

  • Enable the admin UI:建议勾选,勾选后可以通过网页UI界面管理邮件

  • Enable the API:可选

  • Enable Web email client:如果您启用了网页UI,建议您在此选择一个UI前端界面;下方还有4个可选选项:

    • 第一个是防病毒,如果vps内存不大于2GB不要开启!

    • 其余三个可在任意配置vps服务器中启用,按照需求勾选即可

  • IPv4 listen address:填写您的用于运行Email服务的vps IP地址

  • Subnet of the docker network:保持默认,这是docker子网

  • Enable IPv6:保持默认

  • Enable an internal DNS resolver (unbound):rDNS,建议勾选

  • Public hostnames:填写您的MX记录域名

当一切设置项目准备就绪后,点击Setup Mailu;按照网页上的操作指引进行操作

  • 创建您在配置文件中设置的文件夹:mkdir /opt/apps/mailu

  • 进入文件夹内,远程拉取所需的配置模板

cd /opt/apps/mailu
wget https://setup.mailu.io/2.0/file/249d5b39-c5a4-4661-b76b-d350f7d4b977/docker-compose.yml
wget https://setup.mailu.io/2.0/file/249d5b39-c5a4-4661-b76b-d350f7d4b977/mailu.env
  • 启动Mailu服务:docker compose -p mailu up -d

  • 创建管理员账户,下方代码将会为您创建一个账号为admin@apoptoxin4869.com,密码为PASSWORD的管理员账户,您可以自定义密码

docker compose -p mailu exec admin flask mailu admin admin apoptoxin4869.com PASSWORD

Mailu管理后台

服务运行后,MX记录的域名即是邮件管理后台,按照图示依次点击,查看邮箱服务器信息;在信息管理界面点按右上角”生成密钥“

您将会看下图这样的信息,这些信息需要正确填写到cloud flare内以保证邮件服务器的正确运行

cloud flare设置

DNS MX条目:这是已添加的MX记录,无需重复设置

DNS SPF条目:

请对照您的邮件管理后台

SFP内容开始的根域名填写在TXT记录的名称中

600代表的是600秒,TTL选择600秒即10分钟

IN TXT意思是告你您这一块内容您应该使用TXT类型

双引号中的内容填写在内容中,注意不要复制双引号

DKIM公钥:这部分内容无需操作

DNS DKIM条目:参考SFP条目的添加操作

需要注意,DKIM的内容中有两段用双引号包裹起来的内容,类似以下形式

dkim._domainkey.apoptoxin4869.com. 600 IN TXT "v=DKIM1; k=rsa; p=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

填写在DKIM内容中的字符建议去除双引号

按照以上给出的示例步骤,一一补充后续的内容,例如DNS TLSA entry

  • 内容中左侧的信息对应名称,由于apoptoxin4869.com是我的根域名,所以保存以后cloud flare会自动隐藏根域名,您在新建相关内容类型的时候请写全名称【25.tcp.mail.apoptoxin4869.com】注意不要把”.“复制进去

  • 第二位的数字信息是代表秒,设置TTL的时候请自行换算秒数等于几分钟或者几小时,选择对应的TTL数值

  • 第三位信息代表你需要新建的类型,例如IN TLSA代表我需要为此内容建立TLSA类型的记录

  • 第四位的信息代表参数请按照顺序填写,下图中给出了箭头指示

  • 第五位信息则是具体内容,填写内容的时候务必不要复制引号

  • 后续内容较多,教程中就不做一一演示填写,按照此处给出的对照法,可以很容易的完成剩下的内容记录

测试邮件得分

所有记录值完成以后,可以进行邮件得分测试,得分越高代表您的邮箱系统越安全且经过认证,您发出的邮件不会直接进入对方的垃圾邮箱中

打开网页https://www.mail-tester.com/?lang=zh,复制网页中的邮件地址,用您刚部署完成的邮箱向此地址发送邮件【注意不要发送一些例如test这样标题和内容的邮件,请认真填写邮件标题和内容】

例如您可以填写邮件标题为【mailu邮箱系统配置信息设置说明】,邮件内容可以把本教程mailu安装菜单中所列出的几个值得注意的点复制进去,然后点击发送,回到网页查看邮件得分,满分是10分

写在最后

如果您对本篇教程有疑问欢迎在评论区留言

如果您还没有合适的服务器用于运行Email服务,本站推荐本篇教程所用服务器:

  • 服务商是Raksmart

  • 价格低,配置合理,包含针对中国大陆优化的带宽,一般是100Mbps

  • 无限制流量,默认每月100TB流量,用完后可以发工单重置

  • 中文客服,提交工单可直接使用简体中文,工单回复速度快

  • 您可以通过本站的推广链接进行注册及购买:https://billing.raksmart.com/whmcs/aff.php?aff=5342

  • 该服务商默认禁用邮件端口,可以直接发送工单申请开通,前提是vps需要以年付费形式支付费用,同意几条相关条款,整个过程很快完成