lundi 20 août 2007

php, mail() \n \r dos windows


Mais qui c'est qui a fait cette fonction mail() chez php ?
Encore un ostraciste (qui a une aversion suivant la couleur de l'OS),
un windowsien ou linuxien : la syntaxe est différente suivant l'OS !
ben oui, les headers sont séparés par des \n ou \r ;
et quand on se trompe on a dans un cas
- tous les headers sur une seule ligne
- ou le serveur de réception qui gueule parce que le \n c'est pas conforme
(sur qmail ya la verrue fixcrio) et l'email est rejeté ou même détruit (le con!)

où est l'erreur ? où est la correction ?

<span style="font-weight: bold;">* l'erreur </span>: mail() devrait accepter \n ou \r, et le retranscrire dans son OS ou son protocole.

<span style="font-weight: bold;">* la correction </span>: en attendant sur le serveur linux on peut bidouiller ceci :

<span style="font-weight: bold;">sendmail_path = "unix2dos|dos2unix|sendmail -t -i"</span>

ce qui change \r en \x0D\x0A , puis tout en \r

oui je sais c'est de la bidouille, mais de la bonne bidouille au bon endroit.

Aucun commentaire: