2 votes

Postfix et Amazon SES - transfert d'e-mails - problème avec l'en-tête "Delivered-To".

J'exécute postfix en utilisant Amazon SES comme transport de courrier. Le courrier est bien envoyé, mais lorsque je reçois du courrier et que j'essaie de le transférer en utilisant un alias virtuel, j'obtiens cette erreur dans le mailog :

 (Command died with status 1: "/ses/ses-send-email.pl". Command output: Illegal header 'Delivered-To'. )

Je constate que SES ne prend pas en charge l'en-tête "Delivered-To". Comment puis-je transférer des e-mails ? J'ai activé le softbounce si cela signifie quelque chose, peut-être que le désactiver fonctionnera ?

4voto

WildJoe Points 2515

Je sais que cette question date d'un an mais pourquoi utiliser le script alors que Postfix gère très bien le relais par SES en utilisant SMTP.

Vous pouvez soit configurer votre relayhost si le seul courriel envoyé provient d'un expéditeur vérifié ou d'un domaine vérifié ou vous pouvez utiliser sender_dependent_relayhost_maps pour ne relayer que les domaines et les expéditeurs vérifiés.

Dans les deux cas, vous devez commencer par configurer le mot de passe SASL pour SMTP AUTH. J'utilise /etc/postfix/sasl_password et il doit suivre le format de :

email-smtp.us-east-1.amazonaws.com    SES-USER:SES-USER-PASSWORD

Mettez à jour pour utiliser l'hôte SMTP de votre console AWS SES et les informations d'identification appropriées de l'utilisateur SES SMTP. Ensuite, vous devez configurer les paramètres du client SASL SMTP dans la section /etc/postfix/main.cf en ajoutant ce qui suit :

smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
smtp_sasl_security_options=noanonymous
smtp_sasl_mechanism_filter = login

Exécutez maintenant postmap /etc/postfix/sasl_password et tout est prêt. Vous devez maintenant décider si vous allez tout relayer ou seulement les expéditeurs/domaines vérifiés. Si vous relayez tout, ajoutez simplement ce qui suit à votre fichier main.cf :

relayhost = email-smtp.us-east-1.amazonaws.com

D'un autre côté, si vous souhaitez uniquement envoyer des expéditeurs/domaines vérifiés, ajoutez ce qui suit à votre fichier main.cf à la place :

sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_maps

Ensuite, dans /etc/postfix/relayhost_maps ajoutez vos expéditeurs/domaines vérifiés en suivant le format suivant :

verified@example.com    email-smtp.us-east-1.amazonaws.com
@example.net            email-smtp.us-east-1.amazonaws.com

Exécutez ce fichier à travers postmap /etc/postfix/relayhost_maps et faire un postfix reload et vous devriez envoyer des emails via SES.

2voto

Sveatoslav Points 101

Vous pourriez préciser prepend_delivered_header = file pour désactiver l'insertion de l'en-tête "Delivered-To" lors du transfert. Voir documentation pour les détails.

1voto

teki Points 1

1voto

greektreat Points 592

Vous pouvez éditer ses-send-email.pl pour convertir les en-têtes illégaux en en-têtes X-.

Vérifiez ici pour un exemple de code : http://www.evanhoffman.com/evan/2011/08/02/amazon-ses-illegal-headers-with-ses-send-email-pl-followup/

1voto

Shrike Points 11

J'utilise les header_checks et l'action REPLACE dans postfix comme suit :

/^(Delivered-To:.*)$/ REPLACE X-$1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X