2011-11-09 2 views
2

Actuellement je filtrent les messages entrants par un .forward de la manière suivante:Exim: Forward Basé sur bénéficiaire dans bcc

if $header_to: matches "(office|info)@domain.com" then 
    save Maildir/.office/ 
endif 
if $header_to: matches "[email protected]" then 
    save Maildir/.whatever/ 
endif 

J'ai donc un compte de messagerie, qui reçoit mails pour des adresses différentes. Fondamentalement, je veux qu'ils atterrissent dans différents sous-répertoires en fonction de l'adresse à laquelle le courrier a été envoyé.

Cela fonctionne pour les mails où le destinataire est dans le to -header, mais ne fonctionne pas si le destinataire était dans le bcc.

Lorsqu'un courrier est reçu qui a été envoyé avec le bcc -header, seul le envelope-to -header correspond à l'adresse réelle du courrier est livré et il est mentionné dans un Received -header

Envelope-to: [email protected] 

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 <[email protected]>) 
    id 1RO5xc-0001TF-Qj 
    for [email protected]; Wed, 09 Nov 2011 12:04:57 +0100 
... 
To: [email protected] 

Je l'ai déjà essayé:

if $header_envelope-to: matches ... 

mais cela ne fonctionne pas, mails ne sont pas filtrés à tous, même lorsqu'ils sont envoyés avec To -header (qui ressemble à la Envelope-To -header n'est pas disponible dans forw ard-files). Devrais-je essayer d'analyser les (multiples) Received -headers?

Comment puis-je déplacer des messages dans un sous-répertoire du destinataire en fonction de l'adresse de destinataire réelle?

Répondre

1

on dirait que j'ai enfin trouvé la réponse.

if $original_local_part matches "office|info" then 
    save Maildir/.office/ 
endif 

Ce ne vérifie que le local_part, mais pourrait être étendue à afaik utiliser le domaine, aussi, avec $original_domain (voir the doc)

0

La $recipients variable contient tous (to, cc et bcc) bénéficiaires. L'as tu essayé?