linux:postfix

Ceci est une ancienne révision du document !


Divers astuces sur Postfix

postsuper -d ALL deferred

Très utile de vider cette file quand certains messages n'arrivent pas a être délivrés… Ca évite qu'ils tournent en boucle en réessai pour finir par vous blacklister dans les référentiels de spam.

Quand vous avez un serveur ou vous gérez vous même l'intégralité de la configuration, incluant postfix, vous pourrez rapidement vous heurter la des serveurs mails distants tatillons qui vous refusent vos mails alors que vous n'êtes pourtant pas spammeur et encore moins blacklisté (même si cela peut arriver).

Envoyer ses mails avec un expéditeur correct et accessible

Vous pouvez peut être être victime de quelque chose comme ceci :

 Postfix : host mail.domain.tld[aaa.bbb.ccc.ddd] refused to talk to me: 501 Syntax error in parameters or arguments

Ceci se passe quand vous envoyez un mail avec une configuration de hostname mauvaise das votre configuration postfix. En gros le serveur distant va recevoir un mail d'un serveur mail avec un hostname comme host.domain.tld. La première chose qu'il va faire et de vérifier que host.domain.tld existe sur le net. Si ce n'est pas le cas, il va tout bonnement refuser la connexion…

De même s'il trouve le domaine sur le net (dans les DNS donc), il va aussi vérifier que l'IP du serveur qui lui a envoyé le mail (le votre donc) correspond bien à celle du domaine. Encore un fois si ce n'est pas le cas, risque de refus.

Pour ma part je n'avais pas fait attention surtout que ça marchait bien avec pas mal de fournisseur de mails. Je recevais bien les mails de mon serveur. Mais beaucoup d'autres sont plus tatillons.

Merci donc à ce site, qui m'a apporté la solution ci dessous que je reprends brutalement :

Si vous avez le message suivant sur postfix (ou autre MTA), c’est peut-être une erreur DNS. Le nom présenté par le serveur mail n’est pas connu.

Par défaut c’est le nom de host de la machine. Vous avez peut-être mis un nom interne : mail.domain.int.

Pour forcer le nom sur postfix, ouvrez le fichier :

/etc/postfix/main.cf

et ajoutez ou modifiez :

myhostname = host.domain.tld

ou host.domain.tld correspond à un nom dns connu qui renvoie sur l’adresse IP public de votre serveur de mail.

Pensez à redémarrer votre postfix.

Utiliser SPF

Une autre façon de diminuer encore la possibilité de se faire jeter est de mettre en place SPF sur votre DNS. En résumé, il s'agit d'ajouter une entrée TXT sur votre dns pour le domaine que vous souhaitez utiliser pour votre mail. Dedans, entre autres choses, vous y mettrez l'IP du serveur autorisé a envoyer des mails. Cela est une autre manière de s'assurer qu'il a bien correspondance entre domaine et serveur.

Merci à ce site pour l'information, que je reprends ici :

Il vous faut simplement éditer vos zones DNS chez votre registrar, pour y ajouter une entrée de type TXT. L'instruction pour la cas décrit précédemment est :

v=spf1 a mx ip4:<IP> -all

Paramètres :

  • Liste à pucespf1 : la version de SPF
  • a : s'applique au A-record courant
  • mx : s'applique à l'entre MX courante
  • ip4<IP> : n'accepte que l'IP spécifiée (IP du serveur)
  • -all : refuse tous les autres
  • linux/postfix.1377333291.txt.gz
  • Dernière modification : 2021/04/18 22:24
  • (modification externe)