2 votes

Exim : Transférer en fonction du destinataire dans bcc

Actuellement, je filtre les courriers entrants par un .forward de la manière suivante :

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

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

Cela fonctionne pour les courriers dont le destinataire se trouve dans l'espace de travail. to mais ne fonctionne pas si le destinataire se trouve dans l'en-tête bcc .

Lors de la réception d'un courrier envoyé avec l'option bcc Seul l'en-tête envelope-to -correspond à l'adresse réelle à laquelle le courrier est distribué et elle est mentionnée dans un fichier Received -en-tête

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

J'ai déjà essayé :

if $header_envelope-to: matches ...

mais cela ne fonctionne pas, les mails ne sont pas filtrés du tout même lorsqu'ils sont envoyés avec To (ressemble à l'en-tête Envelope-To -n'est pas disponible dans les fichiers forward). Dois-je essayer d'analyser les (multiples) Received -en-têtes ?

Comment puis-je déplacer des courriers électroniques dans un sous-dossier du destinataire sur la base de l'élément réel adresse du destinataire ?

1voto

markus Points 1327

Il semble que j'aie enfin trouvé la réponse.

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

Cette méthode ne vérifie que la partie locale, mais pourrait être étendue pour utiliser également le domaine, avec $original_domain (voir le doc )

1voto

mpeirwe Points 43

La variable $recipients contient tous les ( to , cc y bcc ). L'avez-vous essayé ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X