J'essaie d'obtenir des rapports par e-mail à partir de nos instances AWS EC2. Nous utilisons Exchange Online (partie de Microsoft Online Services). J'ai configuré un compte utilisateur spécifiquement pour le relais SMTP , et j'ai configuré Postfix pour répondre à toutes les exigences pour relayer les messages via ce serveur. Cependant, le serveur SMTP d'Exchange Online rejettera les messages à moins que l'adresse de l'expéditeur ne corresponde exactement à l'adresse d'authentification (le message d'erreur est 550 5.7.1 Client does not have permissions to send as this sender
).
Avec une configuration soignée, je peux configurer mes services pour envoyer en tant que cet utilisateur. Mais je ne suis pas un grand fan de la prudence - je préfère que postfix force le problème. Y a-t-il un moyen de faire cela?
la source
sender_canonical_maps
postfix, vous ne pouvez pas enregistrer le courrier rejeté dans le spool local et essayez à la place de l'envoyer via le relais à l'infinipostconf -e sender_canonical_classes=envelope_sender,header_sender
postconf -e sender_canonical_maps=regexp:/etc/postfix/sender_canonical_maps
postconf -e smtp_header_checks=regexp:/etc/postfix/header_check
(Remarque: les adresses FROM et TO sont appariées pour le remplacement de n'importe quelle table générique et canonique.)
L'utilisation d'une table canonique lorsque le courrier est reçu par le serveur est déjà expliquée est d'autres réponses.
Vous pouvez réécrire les adresses FROM lorsque le courrier est envoyé à partir du serveur à l' aide de
smtp_generic_maps
.Selon la documentation de postfix :
Alors fais:
Les références:
la source
hash:
àregexp:
des lignes de main.cf et d' utilisation comme/foo.*@localdomain.local/ [email protected]
la carte générique. Ceci est expliqué dans la page de manuelMise à jour: sur les conseils d'un ami informatique, j'utilise postfix sur tous mes serveurs, plutôt que de créer un serveur de messagerie cloud. Voici ma solution jusqu'à présent:
/etc/postfix/main.cf
/etc/postfix/sasl_passwd
/etc/postfix/generic
/etc/aliases
/etc/passwd
Choses dont je suis heureux:
alias
indique qui les reçoit.[email protected]
, de sorte qu'il passe par le serveur SMTP MS Online.Choses dont je ne suis pas content:
passwd
astuce de nom ne fonctionne pas toujours, et il peut être difficile de déterminer de quel serveur provient un courrier.warning: smtp.mail.microsoftonline.com[65.55.171.153] offered null AUTH mechanism list
(Le serveur SMTP envoie uneAUTH
liste nulle avantSTARTTLS
, maisAUTH LOGIN
après).certificate verification failed for smtp.mail.microsoftonline.com: num=20:unable to get local issuer certificate
(Il y a quelques options de configuration autour des certificats, mais je ne suis pas sûr que la livraison du courrier soit interrompue lorsque le certificat est renouvelé)certificate verification failed for smtp.mail.microsoftonline.com: num=27:certificate not trusted
(Identique à # 2)Merci à la communauté serverfault d'avoir partagé des opinions bien arrêtées sur les serveurs de messagerie.
la source
Vous pouvez utiliser smtpd_sender_login_maps pour spécifier une liste de cartes: adresse de l'expéditeur - utilisateur.
Exemple:
/ etc / postfix / login-map:
Cela fonctionne pour l'envoi, il devrait fonctionner pour le relais de la même manière.
la source
echo "This is a test" | /usr/sbin/sendmail [email protected]
toujours en file d'attente (et éventuellement relaie) le courrier comme venant de[email protected]
J'utilise le mappage canonique pour réécrire l'adresse de l'expéditeur, comme la réécriture de root @ app01 vers [email protected].
la source