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

Должна была быть дополнительная строка журнала «Предупреждение: чувак», но ее нет.

Кто-нибудь знает, почему это может происходить?

1 ответ1

0

Поскольку ACL данных запускается один раз для всего сообщения, и сообщение может иметь более одного получателя, информация о получателе в этом контексте вообще не доступна. Используйте ACL RCPT, если вам нужна информация о получателе.

Из раздела 42.14 в документации exim:

Когда работает ACL MAIL или RCPT или любой из ACL DATA, задаются переменные, которые содержат информацию о хосте и отправителе сообщения (например, $ sender_host_address и $ sender_address), и могут использоваться в инструкциях ACL. В случае RCPT (но не MAIL или DATA) $ domain и $ local_part устанавливаются из адреса аргумента.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .