我想在来自特定域的每封外发邮件前面添加一个带有后缀的标题。目前我使用:
check_sender_access hash:/etc/postfix/prepend
使用 /etc/postfix/prepend:
my.domain PREPEND Header: value
这个方法很好用,但是当我向多个收件人发送电子邮件时,每个收件人的标题都会被多次添加到每封外发邮件中。
因此,当我向 4 个人发送一封邮件时,他们每个人都会收到一封包含 4 次标题的邮件。
答案1
对此没有“简单”的解决方案。您需要在 master.cf 中定义第二个 smtpd 实例,让它访问自己的清理实例,并为该清理实例定义 header_checks 映射。然后,您将在邮件中存在的某个唯一标头(即 message-id)上添加标头。
答案2
仅供记录,因为我偶然发现了这个相当古老的问题(因为我遇到了一个非常类似的问题):
那里是一个简单的解决方案:将您的 check_sender_access 指令放入 smtpd_data_restrictions。
解释:据我检查,至少在设置了 smtpd_delay_reject 的情况下(这是默认值,在大多数情况下是合理的),smptd_relay|recipient|sender|client_restrictions 会针对邮件的每个收件人进行一次评估。因此,如果您将其放入其中任何一个中,则标题将针对邮件的每个收件人添加一次。当然,这仅当您的条件不依赖于邮件的收件人列表时才有效。