Réécrire l’adresse mail d’un utilisateur linux via postfix

Vous avez peut être déjà eu le cas d’un programme en bash qui envoie des emails via la fonction mail et vous avez défini votre hostname avec un nom spécial pour votre réseau du style serveurHp1

Quand votre utilisateur lance un mail, il y a donc un from du type utilisateur@serveurHp1

Évidemment, beaucoup de serveurs mail vont le refuser !! En effet, il est impossible de résoudre serveurHp1
Alors comment modifier ce mail from ?

Fonction Mail

Si c’est votre script, vous pouvez utiliser la fonction mail en modifiant ses attributs.

export REPLYTO=reponse@mondomaine.com
echo $MonCorpsdeMessage | mail -aFrom:email@mondomaine.com -s 'Sujet' destinataire@email.com

Décryptons :
En premier lieu, on peut définir avec le export une adresse différente pour le reply-to/
Ensuite, on pousse le corps du message via la variable $MonCorpsdeMessage.
L’attribut -a permet de modifier le header et donc l’adresse d’envoi (from).
L’attribut -s permet de spécifier le sujet.
Et enfin, nous mettons l’adresse du destinataire ( à noter que si vous envoyez à plusieurs contacts, il suffit de les séparer par une virgule )
Pour plus d’informations reportez vous au man.
man mail

Mais il arrive que cela ne soit pas vos scripts et que vous ne puissiez pas les modifier, alors voici la deuxième méthode :

Postfix

Il suffit de passer par le generic_maps de postfix

rajouter dans /etc/postfix/main.cf :
smtp_generic_maps = hash:/etc/postfix/generic

Il ne reste plus qu’à relier votre utilisateur à votre email

echo 'www-data email@mondomaine.com' >> /etc/postfix/generic

puis on créé la map et relance postfix

postmap /etc/postfix/generic
/etc/init.d/postfix restart

Voilà, ce n’est pas grand chose, mais pour le suivi de vos crons ou de vos robots cette astuce peut vraiment vous aider.

Laisser un commentaire