Bonjour,

Je galère sur un problème apparemment simple, mais que je n'arrive pas à résoudre.
Je souhaite, avec Postfix + la fonction mail() de PHP, pouvoir modifier l'ordre des lignes TO et SUBJECT dans les headers.

Dans un fichier PHP, j'utilise la fonction mail() pour envoyer des mails :

$headers = "From: test test@xxxxx\r\n";
$headers.= "Organization: XXX\r\n";
$headers.= "X-Mailer: xxx\r\n";
mail("xxx@xxxxx" , $objet, $message, $headers);

Postfix construit un header comme ceci :

To: xxx@xxxxx
Subject: objet du mail
From: test <test@xxxxxx>
Organization: XXX
X-Mailer: xxx

(jusque là tout vas bien :-D )

Hors je veux modifier l’ordre des lignes, par exemple, j'aimerais avoir :

X-Mailer: xxx
Subject: objet du mail
From: test <test@xxxxxx>
To: xxx@xxxxx
Organization: XXX

Et si je code en PHP comme ceci :

$headers = "X-Mailer: xxx\r\n";
$headers = "Subject: objet du mail\r\n";
$headers = "From: test test@xxxxxx\r\n";
$headers.= "To: xxx@xxxxx\r\n";
$headers.= "Organization: XXX\r\n";
mail("xxx@xxx.xx" , $objet, $message, $headers);

Postfix va créer ceci :

To: xxx@xxxxxx
Subject: objet du mail
X-Mailer: xxx
Subject: objet du mail
From: test <test@xxx.xx>
To: xxx@xxxxx
Organization: XXX

On voit bien que les 2 lignes TO et SUBJECT se placent toujours au début, même si on essaye de les "écraser" en PHP avec les lignes TO et SUBJECT.

La question est donc : comment faire pour avoir un header sur mesure, notamment comment faire pour déplacer les lignes TO et SUBJECT où je veux.

Environnement : Linux Ubuntu 14.04 + postfix version 2.9.6

Si quelqu'un a une idée je suis preneur car je galère sur ce problème depuis plusieurs jours...

Merci :-D

2 réponses


En quoi ça va te servir de changer l'ordre des éléments de tes header ?
Personnellement je pense pas que ça soit possible.

Ca va me servir à avoir un header unique, pour chacun de mes clients. Comme ça, si un de mes clients se fait blacklister (au niveau de la structure du mail = en-tête), ça évitera d'impacter mes autres clients.

Je me suis renseigné entre temps, effectivement, il semblerait que postfix ne le permette pas, sauf... en tapant dans le dur de postfix. Ce qui me semble un peu difficile tout de même.

Si quelqu'un a une idée, où je peux intervenir dans le code de Postfix / linux, je suis preneur.