背景
因市面上自建邮局所需的程序安装都太麻烦,所以想着借助某个面板方便的那种,且占用内存偏低。
所需物资
- 域名
- 独立 IP 服务器(且不封邮箱端口)
过程
创建 rDNS
搭建邮局,先要做好 rDNS. 这个一般 IDC 是不会让你自己弄的,你需要开一个工单给他们,让他们给你做 rDNS(当然,有的 IDC 可能不给做 rDNS. 买之前建议先发个工单问下). rDNS 记录值的内容,就是你要用来发邮箱的域名了(邮箱地址中 @
后面的那一部分)。做好之后,使用 mtr 等工具可以看到。
配置 VestaCP
安装
使用 SSH 连接至服务器,直接复制粘贴一把梭,走起(建议开个 screen
装,保险)。
curl -O http://vestacp.com/pub/vst-install.sh
bash vst-install.sh
它会让你输入 FQDN Hostname
,写做了 rDNS 的那个。
等个 10 分钟左右就能好,都装完之后会告诉你后台管理员账号的密码,记得记下来。
配置 SSL
登录到 VestaCP 的后台( ip:8083 ), 先点右上角的 admin, 然后在 language 那里可以改语言,你也可以顺便把 admin 密码改了
到 web 服务这里,点那个加号
点开下面的高级选项,然后选上启用 SSL,和采用 lets encrypt。再输入你想作为管理 vestacp 用的域名(为了方便介绍,称其为 example.com),点击保存,应该会提示成功。在 web 服务板块下,点击你刚刚添加成功的那个域名的编辑选项。
往下翻,你应该就能看到签发成功的 SSL 证书了。
开一个新的页面,进入 VestaCP 上面的 服务器 选项中,然后对默认站点进行配置。
把刚刚签发下来的 SSL 证书信息粘贴上去,保存。
配置邮箱
然后到邮箱服务这里来,再点加号加一个新的邮箱域名。域名就填 rDNS 设置的那个。
成功之后,点添加账号。自己用的话,其实高级账号可以不用管。如果你需要弄转发,则需要在高级选项中的 转发到 进行设置
针对 VestaCP 的设置完成了。进入 webmail(https://example.com/webmail),就可以发信了。如果一切正常的话,outlook 会进垃圾邮件箱,gmail 会拒信。请继续进行下面的步骤,确保正常发信。
配置 SPF.
这一步其实很简单。进入你邮局域名的 DNS 管理(不是 VestaCP 那个),添加一个 TXT
记录,主机值的你设置的 rDNS 域名,内容为如下:
v=spf1 ip4:x.x.x.x ~all
记得将其中的 x.x.x.x
替换为你邮局服务器的 IP.
配置 DKIM
运行下面这个脚本。不过记得把 example.com
换成你做 rDNS 的那个域名
/usr/local/vesta/bin/v-list-mail-domain-dkim-dns admin example.com
得到的输出应该是长这样的
你需要向域名添加两条 TXT
记录。第一条的主机名是 _domainkey
,内容为 t=y;o=~;
。第二条的主机名是 mail._domainkey
,内容为 k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD1VY7IfMq6Lqp3CzydTyoffAv76kvkQ3+bWKXrC7YZxIhC2owm5HQjA7qH4pt15oA1cwM97sHKpJ5zdxmcf6wODQARxEnNU2D1bL7J95iWRMdjlzE99V1ae6u2bsDS3LvXWEadfpEpD9XacYliFkslMs/+vtsxOVyaglc/WbVY6wIDAQAB
。其中 p 的值,每个域名是不一样。p 后面的这一串,就是脚本输出的第二条 TXT 记录的 p 的值,但在创建 mail._domainkey
记录的时候,还应在最前面加上 v=DKIM1;
,即v=DKIM1;k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD1VY7IfMq6Lqp3CzydTyoffAv76kvkQ3+bWKXrC7YZxIhC2owm5HQjA7qH4pt15oA1cwM97sHKpJ5zdxmcf6wODQARxEnNU2D1bL7J95iWRMdjlzE99V1ae6u2bsDS3LvXWEadfpEpD9XacYliFkslMs/+vtsxOVyaglc/WbVY6wIDAQAB
注意:所有记录不能有空格。
配置 DMARC
创建一条 TXT
记录,主机名为 _dmarc
,内容为 v=DMARC1;p=none;pct=100;rua=mailto:[email protected]
. 记得把 rua=
后面的邮箱换成你自己邮局的一个邮箱。理论上来讲,各个邮箱会把滥用报告发送至那个邮箱。这里简单说下几个字段的含义。
p
这里的 p
代表的是 policy(政策)。这个字段定义了所有没有通过 DMARC 检查的邮件的政策,默认为 none
. 合法的值除了 none
还有 quarantine
(放行) 和 reject
(拒信)。none
可以让你在不干扰收信者邮件流动的情况下,收集分析反馈。而 quarantine
则会放行,一般邮件会出现在垃圾箱里。而 reject
就是告知上游直接拒信了。作为一个刚刚搭建的邮局,p
应设为 none
. 在收集到一定的反馈后,可以事情况改为 reject
或 quarantine
pct
这个字段告知收信者,你希望其将 p
定义的政策实施于百分之多少的未通过 DMARC 检查的邮件。需要 p
字段值为 reject
或 quarantine
才能工作。默认为 100
最终检查
https://dmarcguide.globalcyberalliance.org/#/
你可以去这里检查 SPF, DKIM 和 DMARC 的配置。一般情况下来讲,应该是可以通过的
如果你做完了上述操作,再去发一封信试试吧。它应该还在垃圾邮件箱里,但是 Gmail 不会退信了。
转载自:https://blog.paji.uk/2019/08/21/setup-smtp-server-using-vestacp/
文章评论