在ACL期间阅读邮件收件人


2

我希望能够在ACL期间将收件人电子邮件地址(或本地部分,无关紧要)作为变量访问(例如,我希望能够使用“ $ local_part”)

该文档似乎暗示变量$ local_part在acl期间可用,但是不适用于我。

在数据ACL以及rcpt中

warn condition = true
     log_message = A

warn condition = true
     log_message = $local_part

warn condition = true
     log_message = B

产生这些日志行

2011-03-31 16:12:00 1Q5ODo-0000iy-9q H=.net (.com) [.150] Warning: A
2011-03-31 16:12:00 1Q5ODo-0000iy-9q H=.net (.com) [.150] Warning: B
2011-03-31 16:12:00 1Q5ODo-0000iy-9q <= no@.com H=.net (.com) [.150] P=esmtp S=679 id=4b3c3206d41afeed@.com from <no@.com> for dude@.com
2011-03-31 16:12:01 1Q5ODo-0000iy-9q => dude@.com R=dnslookup T=remote_smtp H=aspmx.l.google.com [.27] C="250 2.0.0 OK"
2011-03-31 16:12:01 1Q5ODo-0000iy-9q Completed

应该有一个附加的日志行“警告:伙计”,但没有。

有人知道为什么会这样吗?

Answers:


0

由于数据ACL对于整个邮件只运行一次,并且一条邮件可以有多个收件人,因此该收件人信息根本不可用。如果需要收件人信息,请使用RCPT ACL。

根据Exim文档中的第42.14节:

当运行MAIL或RCPT ACL或两个DATA ACL时,将设置包含有关主机和消息的发送者的信息的变量(例如$ sender_host_address和$ sender_address),并可在ACL语句中使用。对于RCPT(而不是MAIL或DATA),将从参数地址设置$ domain和$ local_part。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.