重定向时,从我的服务器收到的电子邮件会保留原始"From: "
地址,这并不有利,因为该地址可能(并且通常确实)具有 SPF 保护的域,还有其他原因。
这看起来像:
一封邮件从我服务器上托管的
[email protected]
电子邮件地址发送出去,[email protected]
邮件已送达
[email protected]
一封邮件被转发到
[email protected]
。otherdomain.tld
由于我的服务器没有资格发送@gmail.com
电子邮件,因此拒绝该电子邮件。
我该如何处理这个问题:我可以吗改写“发件人:”地址,但仅在电子邮件被重定向并根据某些地图的情况下?
它是带有 Postfix 和 的标准 Virtualmin 电子邮件设置/etc/aliases
。
virtual_alias_maps = hash:/etc/postfix/virtual
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
/etc/postfix/虚拟
[email protected] name.domain
/etc/别名
# See man 5 aliases for format
postmaster: root
clamav: root
name.domain: [email protected],\name.domain
答案1
保留From:
不是问题,因为 SPF 检查不是针对From:
标头进行的。事实上,最好不要触碰From:
标头,因为来自的电子邮件通常使用 DKIM 签名@gmail.com
此标头。From:
您需要重写信封发件人,您可能会在电子邮件标题中看到Return-Path:
。这个答案为您的问题提供了一种可能的解决方案。在此引用:
我按照以下指南使用 postsrsd 修复了这个问题: https://www.mind-it.info/forward-postfix-spf-srs/
简而言之:
下载并编译软件
cd ~ wget https://github.com/roehling/postsrsd/archive/master.zip unzip master cd postsrsd-master/ make sudo make install
为 postsrsd 添加 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"
将 SRS 守护程序添加到启动
sudo chkconfig postsrsd on # Start SRS daemon sudo service postsrsd restart #Reload postfix sudo service postfix reload
答案2
我需要从外部邮件服务重写地址,因为我随后会将其重定向到 gmail。我发现 canonical 帮助我做到了这一点。
/etc/postfix/sender_canonical has a list of mappings of external addresses to internal addresses. This will make the relayed email appear to be sent from my domain and match the pointer record lookup of my mailserver-IP
http://postfix.cs.utah.edu/ADDRESS_REWRITING_README.html#canonical