postfix 如何处理邮件转发导致的 spf 验证失败

spf 的作用是对邮件的接收方提供一种验证。看看邮件的发送方,是否在发送垃圾邮件。如果没有通过 spf, 邮件可能被判定为垃圾邮件。

使用 postfix 进行邮件转发的时候,因为发信的ip已经变化了,所以会导致 spf 验证失败。

通过 postsrsd 可以重写地址

这样就可以避免,spf 验证失败。

具体的原理是就是 发送邮件的时候,发信的地址进行改写,这样就可以通过验证。

测试的环境

  1. 邮箱 xxx@qq.com 作为发信的邮箱
  2. postfix 设置 邮件转发 。 对于 xxx@youxiangm.com 收到的邮件 转发到 xxx@gmail.com 邮箱

spf 验证失败的原因: 因为发信的邮箱域是 qq.com, 转发的时候,发信的地址是 postfix 的服务器地址,所以验证失败。

解决的postsrsd : 进行转发的时候,通过 postsrsd ,修改 xxx@qq.com 的地址是 xxx...xxx@youxiangmi.com 这样的地址。 这样修改域 youxiangmi.com 的 spf 记录 就可以和 postfix服务器的地址相匹配了。具体操作可以安装下面的进行。

postsrsd 的安装

cd ~
wget https://github.com/roehling/postsrsd/archive/master.zip
unzip master
cd postsrsd-master/
make
sudo make install

修改 postfix 的配置信息

sudo postconf -e "sender_canonical_maps = tcp:127.0.0.1:10001"
sudo postconf -e "sender_canonical_classes = envelope_sender"
sudo postconf -e "recipient_canonical_maps = tcp:127.0.0.1:10002"
sudo postconf -e "recipient_canonical_classes = envelope_recipient"

检查 域是否是 youxiangmi.com,测试的使用用自己的域名

 postconf -h mydomain

如果不是 修改 postsrsd 的配置文件 /etc/default/postsrsd

SRS_DOMAIN=youxiangmi.com

然后重新启动

service postsrsd restart
service postfix restart

发送邮件测试

spf 通过
spf 通过

如果转到QQ邮箱,会显示代发

代发
代发

发表评论

您的电子邮箱地址不会被公开。