提醒:本文最后更新于 2545 天前,文中所描述的信息可能已发生改变,请仔细核实。
前面提到博客服务器因为是HKBN,并不支持rDNS,所以Zero在rixCloud上开了台机子专门给我做邮件服务器。才有了今天这篇文章,题图是博客目前的邮件系统简易示意图。
博客服务器即图中的WEB Server,邮件服务器即Mail Server。两者都安装了Postfix。
前者作为Null Client,主要作用是对所有该服务器的邮件转发给Master,也就是后者Mail Server。
Null Client配置很简单,主要就是配置只监听本地,设置邮件域,还有设置relayhost及禁用本地邮件投递。下面简单说下配置过程。
在/etc/postfix/main.cf
中,配置:
inet_interfaces = loopback-only
mydestination =
myhostname = kn007.net
mynetworks = 127.0.0.0/8, [::1]/128
myorigin = $myhostname
relayhost = mail.kn007.net
local_transport = error: local delivery disabled
smtp_tls_security_level = encrypt
其中mydestination留空,myhostname不能与Master服务器同参数配置相同。
smtp_tls_security_level的话,看个人需要,主要就是TLS隧道,但是需要Master配置了TLS。
因为本地邮件投递被禁用了,那么就没必要让postfix再监听local邮件传递了。在/etc/postfix/master.cf
中,把local那一行注释掉就行了。这一步不做也可以,做了省点内存而已。
接下来,配置Master,基本看之前文章来配置。
其中的不同点,在/etc/postfix/main.cf
中:
myhostname = mail.kn007.net
mydomain = kn007.net
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8, [::1]/128, 103.86.69.2, 61.244.29.105
myhostname要定义与Null Client的myhostname不同,相同将导致无法发信,我这里是设置成mail.kn007.net。
你可以在mydestination和myorigin设置成你的主域。比如我就是设置成kn007.net,这样发件域还是kn007.net,这样对我来说DKIM配置还不用改。
mynetworks要添加Null Client的IP,以便通过Relay Access检测。
如果你并没有Relay授权检测,那么可以忽略这一步。不过强烈建议做Relay检测,不然你的邮件系统可能会被滥用,配置方法见之前文章。
最后,在OpenDKIM的配置文件/etc/opendkim/TrustedHosts
中,同样的也要添加Null Client的IP,以便正常签名。
完成配置更改后,记得重启Postfix及OpenDKIM,以完成应用。
好的,这样就成功做到如图所示的架构。之前文章可见专题文章《Postfix小结》。
配置完,根据一些实际情况,比如我是有用Dovecot+RainLoop来管理域名邮箱邮件的,那么还要做些变通。
因为RainLoop在Null Client,即WEB Server上,而Null Client本身是没有本地邮局的,只做转发,邮件都在Master上。
我在Master,即Mail Server上,搭建好Dovecot和Nginx。Dovecot只允许WEB Server访问(防火墙策略),而Nginx反代WEB Server上的RainLoop。
这样便达到目的,WEB Server的RainLoop访问来自Mail Server上的Postfix和Dovecot来完成收发邮件;而直接访问Mail Server,因为反代,也能顺利访问到RainLoop来管理邮件。
为什么要反代呢,因为MX记录指向的是Mail Server而不是WEB Server,所以需要反代。
还有,平时有计划任务备份WEB Server的数据,所以我用了rsync把Mail Server的邮件同步到WEB Server上,以达到备份目的。
另祝元旦快乐。
转载请注明转自:kn007的个人博客的《配置Postfix通过其他服务器发件》
新年快乐
@liwanglin12: 同乐同乐~
2018 快乐。
@老杨: 同乐~
提一个问题哈,如果Null Client在腾讯云阿里云这类封25端口的主机商上的话,如果没有Master这个Relay Host是不是就没有办法让发件走465而不是25了?试过smtp_tls_security_level = encrypt发现和腾讯还有谷歌的邮局的通信还是走的25端口
@Xider: 可以说是的。
25你理解成标准端口就行了,高位数只是说一般启用了tls,实际启用与否,与端口无关。
就像你没有80端口,却想着http跳转到https,那是不可能的。(现在可以,也只是说支持hsts列表的浏览器才行,但邮件端口可没所谓hsts)
@Xider: 讲白,你有没有设置smtp_tls_security_level,不是你的机子根本就不知道。
知道也要联通25后,你告诉他,你是强制要加密的。
25端口是标准端口,没25端口,就基本是废了,收不了件的。
你想想,厂商也没那么笨诶。不可能禁用了25,还能让你在本机收件,那样禁用25还有什么作用
@kn007: soga,长姿势了
@Xider: 阿里云不封25吧,话说。
腾讯可以申请25端口开放,但不支持rDNS记得是。
@kn007: 阿里云应该是封了,腾讯云我昨天试了一堆办法都没用就去申请解封了
@Xider: 阿里云一直是可以的啊,你发个ticket问问,我有台机还在上面,很正常记得是,不过我已经不在上面发件了。
@kn007: 应该是16年6月之后新的鸡都封了25,你的鸡子可能是之前的鸡子可能不影响吧
@Xider: 去申请解封+rDNS啊
@Xider: 阿里云现在默认封了25 不过可以去申请
IP地址暴露了,香港地区打开就是快啊。
@灵尘子: 不怕漏啊,主要
@灵尘子: 带IP,小白看着简单点,容易分清,分不清的人,我一般就懒得理了。。
发现一个问题,博文中的外链点击后跳转到了你的博客首页
@小怪物: 哪个链接
@kn007: 就是 google voice 那篇里的外链,类似这样的:https://kn007.net/func/go.php?url=http://googlevoice.net/index.php/archives/10/ 那篇博文里的所有外链都是跳转到博客首页,我觉得是go.php?xxxxx这种都是这样跳的
@小怪物: 你确定是访问我的文章么?你再试试看看,讲道理不会啊,会出现这种情况,一般就是盗链访问。。
@小怪物: RSS的话,可能会出现这种情况
@kn007: 没有 rss,就是在你博客顶上 归档>搜索 google voice 打开的文章
@小怪物: 这么奇怪。。
@kn007: 世事难料~
是啊,我在你博客打开的呢,因为我以前看过那篇文章,之前没注册成功,最近有想着注册看看,还是没成功,最后淘宝了个
@小怪物: 最近想注册GV比较麻烦,我也很久没试了。。
你什么浏览器啊?我chrome下,试了没问题
@kn007: safari
@小怪物: 哦,煞笔苹果不好说。你是不是启用了不要追踪。。
@kn007: 好像是启用了,chrome 试了下确实没问题
@小怪物: 我知道为什么了,因为safari过时了。
看下这个: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Referrer-Policy
和这篇文章: https://kn007.net/topics/update-to-wordpress-4-9/
@小怪物: 如果我用origin,那么新版的协议就冲突了。因为有变更。新版浏览器走新的协议。
@小怪物: 要么我就是用unsafe-url。。但好难听啊
我就是用postfix借助QQ邮箱来发送服务器的邮件的!