半年前在雨云买了个云服务器,美国的,然后就一直闲置,只挂了一个半死不活的博客(没错,就是你现在看到的这个)。现在想想怪可惜的,就打算拿来试着搭个邮件服务器,实现邮件自由。
前提条件:
- 拥有一个开放了25端口的服务器(见下文如何测试)
- 一个域名(最好是顶级域名)
- 安装了docker
- 使用1Panel(如不用1Panel,则需要编辑maddy.conf)
如果安装了防火墙,请先放行以下端口:25、143、993、465、587
如何查看25端口是否开放:打开终端,运行此命令 telnet smtp.qq.com 25
如果端口开放,则会出现类似如下提示
如果这样,则表示端口没有开放,可以收工了
部署邮件服务器
在1panel应用商店搜索“Maddy”,点击“安装”
容器名称随意,将域名和主机名改为自己的域名(一般来说,域名为域名本身,mx为域名加mail.)
注意要勾选“端口外部访问”
关于两者区别
随后,将域名证书文件fullchain.pem和privkey.pem放置在/var/lib/docker/volumes/maddydata/_data/tls目录下。如果使用1panel申请证书,则可以直接推送到那个目录(非常方便)
注意,域名证书中应至少包涵“mail.你的域名”和“你的域名”(mail打头的是MX主机,当然也可以是其他记录,需要在MX记录中指定)
获取DKIM
以上步骤完成后重启容器,当容器正常运行后,在/var/lib/docker/volumes/maddydata/_data/dkim_keys路径下会有个example.com_default.dns文件。
注意,一定要上传完成SSL证书才能运行,否则maddy会报错
下载文件备用,注意文件应该是“v=DKIM1; k=rsa; p=base64_public_key”的格式,如果打开发现不符,请检查文件是否损坏
配置域名解析记录
名称 | 记录类型 | 记录值 | 作用 |
_mta-sts.example.cn | TXT | v=STSv1; id=1 | 强化邮件安全性 |
example.cn | A或A+AAAA(如果有) | 服务器IP地址 | 邮件域名 |
example.cn | MX,优先级10 | mail.example.cn | 指定MX服务器顺序 |
mail.example.cn | A或A+AAAA(如果有) | 服务器IP地址 | 指定MX服务器实际地址 |
example.cn | TXT | v=spf1 mx -all | SPF鉴权,防伪造邮件 |
mail.example.cn | TXT | v=spf1 a -all | SPF鉴权,防伪造邮件 |
_dmarc.example.cn | TXT | v=DMARC1; p=quarantine; ruf=mailto:邮件管理员账号@example.cn | 提供错误报告机制 |
default._domainkey.example.cn | TXT | 粘贴获取的DKIM值 | 确保邮件未被篡改 |
_smtp._tls.example.cn | TXT | v=TLSRPTv1;rua=mailto:邮件管理员账号@example.cn | 提供错误报告机制 |
完成以上解析添加后,再雨云新建一个网站,域名为https://mta-sts.example.cn(一定要启用TLS加密连接)
再.well-known/目录下,新建一个mta-sts.txt,内容为
version: STSv1
mode: enforce
max_age: 604800
mx: mail.example.cn
还建议设置 TLSA (DANE) 记录。 使用 https://www.huque.com/bin/gen_tlsa 生成一个。 将端口设置为 25,将传输协议设置为“tcp”,将域名设置为 MX 主机名。(需要DNS服务商支持DNSSEC,否则不会生效)
至此,完成解析配置
创建maddy账户
在1panel,docker中连接maddy的终端
输入maddy creds create postmaster@example.cn创建用户账号,设置密码(不会显示)
输入maddy imap-acct create postmaster@example.cn创建一个本地存储帐户
这样,你就可以用postmaster@example.cn登录你的邮箱了!!
啊啊啊这篇教程写了一上午!!!给个赞,评论一下求求吧!!!