#email #filter #exim #bcc #exim4
#Адрес электронной почты #Фильтр #exim #bcc #exim4
Вопрос:
В настоящее время я фильтрую входящие письма с помощью a .forward следующим образом:
if $header_to: matches "(office|info)@domain.com" then
save Maildir/.office/
endif
if $header_to: matches "whatever@domain.com" then
save Maildir/.whatever/
endif
Итак, у меня есть учетная запись электронной почты, которая получает письма на разные адреса. В принципе, я хочу, чтобы они попадали в разные вложенные папки в зависимости от адреса, на который была отправлена почта.
Это работает для писем, где получатель указан в to
заголовке, но не работает, если получатель был в bcc
.
При получении почты, которая была отправлена с bcc
заголовком, только envelope-to
заголовок соответствует реальному адресу, на который доставляется почта, и он упоминается в Received
заголовке
Envelope-to: office@domain.com
Received: from mail.other.domain ([1.1.1.1])
by mail.domain.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)
(Exim 4.71)
(envelope-from <sender@other.domain>)
id 1RO5xc-0001TF-Qj
for office@domain.com; Wed, 09 Nov 2011 12:04:57 0100
...
To: can_be_anything@whatever.com
Я уже пробовал:
if $header_envelope-to: matches ...
но это не работает, письма вообще не фильтруются, даже когда отправляются с To
заголовком (похоже, Envelope-To
заголовок недоступен в forward-files). Должен ли я попытаться проанализировать (несколько) Received
-заголовков?
Как я могу перемещать письма во вложенную папку получателя на основе реального адреса получателя?
Ответ №1:
похоже, я наконец нашел ответ.
if $original_local_part matches "office|info" then
save Maildir/.office/
endif
При этом проверяется только local_part, но afaik может быть расширен и для использования домена с помощью $original_domain
(см. Документ)
Ответ №2:
Переменная $recipients
содержит всех ( to
, cc
и bcc
) получателей. Вы пробовали это?