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