问题: 亚马逊展示了一个例子如何添加他们的X-SES-配置-设置:配置集到一封电子邮件。如何将其添加到我的 postfix 配置中,以便它将其用于所有外发电子邮件?
以下是迈克尔·汉普顿的回答:
根据 Michael Hampton 的回答,我创建了一个在我的服务器上运行的脚本。也许这可以帮助某些人。
#!/bin/bash
PrivateIP="123.123.123.123"
MyEmailAddress="[email protected]"
AmazonConfigSet="data-transporter"
#-- Install postfix-pcre
sudo apt-get install postfix-pcre -y
#-- Create 3 lines that append to your /etc/postfix/main.cf
{ echo ""; echo '#-- Amazon Simple Email Service'; echo "smtp_header_checks = pcre:/etc/postfix/ses-configuration-set"; } >> /etc/postfix/main.cf
#-- Create file with your configset name
echo "/^From:/ PREPEND X-SES-CONFIGURATION-SET: ${AmazonConfigSet}" > /etc/postfix/ses-configuration-set
#-- Postmap
postmap -q - pcre:/etc/postfix/ses-configuration-set <ses-configuration-set
#-- Send test email to your email account
echo "Test From $(hostname) and the header should contain ip ${PrivateIP}" | mail -s "Amazon IP Test From $(hostname)" "$MyEmailAddress"
答案1
你可以这样做后缀header_checks
(尽管您可能希望使用相关功能smtp_header_checks
以使其仅适用于外发邮件)。
例如,您可以添加到main.cf
:
smtp_header_checks = pcre:/etc/postfix/ses-configuration-set
然后创建/etc/postfix/ses-configuration-set
包含标题检查的内容:
/^From:/ PREPEND X-SES-CONFIGURATION-SET: ConfigSet
(ConfigSet
您的配置集名称在哪里)
(请注意,空格应该在那里。亚马逊的例子中缺少空格是一个小错误。)
重新加载 postfix 然后 Bob 就是你的叔叔了。
这将导致 Postfix 在标题之前添加标题From:
。如果您的外发邮件没有标题From:
(虽然应该有!),请选择将包含的其他标题,例如Subject:
或Content-Type:
。
答案2
迈克斯的回答以上非常完美,将 X-SES-CONFIGURATION-SET 前言放在我们从 postfix docker 通过 AWS SES 转发的每封邮件上。
但是,为了帮助其他人,我收到了这个错误:
警告:pcre:/etc/postfix/ses-configuration-set 不可用。不支持的字典类型:pcre
已解决:
apt-get update -y && apt-get install postfix-pcre -y
systemctl reload postfix
(如果在非容器上)