windows搭建smtp服务器

email的发送的收取是分开的,一个域名的收和发并不需要在同一个服务器,例如现实邮件,收件地址在自己家,发件则是去邮局,如果没有收件地址,只去邮局发送自然也是可以的。smtp就是邮局,负责将邮件送到收件域名指定的MX记录。

比如我的域名MX记录是cloudflare的,会通过cloudflare收邮件转发到我的其他邮箱,用自己的服务器或者专业的smtp服务商来发邮件,smtp服务商比较方便,比如sendinblue每天免费300封邮件,又或者aws的纯按量付费,发一封邮件收一封的钱,对于不需要大量发送邮件的情况很实惠,这些服务商都是是专用ip,有些邮箱(如Outlook)对ip很严格,如果发件ip不是可以发送邮件的ip会直接拒收。

搭建之前需要准备一个域名,稍后还需要修改dns记录,和现实邮局一样,发件人理论上可以随意写,不需要是一个真实的域名,但是大家肯定都不希望别人拿自己的域名发垃圾邮件,所以规定了一系列防止未经允许盗用域名当发件人的策略,spf和dkim,还有dmarc,在dns中都属于txt记录,但是是否遵守取决于收件方。

我用hmailserver来搭建,需要一个数据库,不过我只是用来发邮件不打算收邮件所以数据库随便弄弄就好了,安装时就选择内置的数据库

密码设置好,安装好后,会弹出这样的一个界面,点击connect就可以连接服务了,如果所有操作服务器的人是可信的并且不怕服务器被攻破,那可以edit那里把密码保存进去,避免每次都输入密码

连进去后看到这样一个界面点击add domain,domain应该是在邮箱的@后显示的部分,比如@gmail.com就应该输入gmail.com

输入好后点击save就可以设置其他选项了

其中必须设置的是dkim signing,如果不设置基本会被认为是垃圾邮件甚至不会接收,可以随意寻找一个可信任生成dkim的网站,在网站上输入domin和selector,selector被用来寻找dns记录,生成后将私钥保存到一个文本文件里,公钥保存到txt记录里,比如selector是1111,TXT记录就是这样的

在服务器上选择刚才保存的私钥文件,输入selector

然后在域名下的accounts点击add添加连接账户,输入用户名和密码点save就添加成功了

然后需要配置tls证书,在ssl certficates选择add添加包含domain名称的tls证书,这一步是可选的,但是应该配置加密

这一步也是可选的,完成了上一步后,关掉tls1.0和tls1.1,开启tls1.2和tls1.3,ssl/tls ciphers设置为ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;,这样将增加安全性,但可能会降低兼容性

端口设置里把587设置为starttls并选一个证书,一般邮箱客户端强制要有一个收件协议,所以把143端口也设为starttls并选择证书

现在已经可以在邮件客户端通过smtp服务器发送邮件了,但是还可以再优化一下,添加dmarc记录,比如cloudflare的v=DMARC1; p=reject; pct=100; rua=mailto:rua@cloudflare.com,mailto:cloudflare@dmarc.area1reports.com,mailto:reports@dmarc.cyber.dhs.gov; ruf=mailto:cloudflare@dmarc.area1reports.com,具体配置方法可以查看cloudflare的文档

还有个spf没配置,spf指定来自这个域名应该从spf记录中指定的ip发出,但是一般不用配置,直接全拒绝就行了。dkim足以防止伪造发件人,dkim验证过了完全可以认为是一次合法的发件。

文章已创建 31

发表评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部

了解 njj's blog 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读

了解 njj's blog 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读