我正在创建一个python脚本来使用各种方式传递本地邮件。问题是这样的:
- 该脚本必须接受 /etc/postfix/virtual 中定义的多个虚拟域
- 脚本会检查收件人是否有效以及内容是否符合预期,如果不符合,则退出并显示相应代码(4.xx 5.xx)
问题是我希望退回邮件来自收件人地址(orig_to)或 bounce@recipientdomain,这可能吗?
设置:
在/etc/postfix/虚拟:
@domain1 pymail
@domain2 pymail
@domain3 pymail
@domain4 pymail
@domain5 pymail
/etc/postfix/master:(包含)
pymail unix - n n - - pipe
flags=FR user=pymail argv=/path/to/script.py ${sender} ${recipient}
在/etc/postfix/传输:
* pymail:
/etc/postfix/main.cf:
pymail_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport
virtual_alias_domains = domain1 domain2 domain3 domain4 domain5
virtual_alias_maps = hash:/etc/postfix/virtual
答案1
问题是,当 postfix 将您的邮件发送给 python 时,它已经被接受了。
请勿接受您不打算发送的邮件;反向散射退回是最糟糕的垃圾邮件之一。
相反,在后缀,而不是 python,让 postfix 拒绝不需要的或无法送达的邮件。
您还需要使用 pipe(8) 的参数和各种目标并发选项,以使其顺利运行。
答案2
我找不到办法做到这一点,所以最后我只是写入 python 脚本以从正确的地址向发件人发送错误邮件。