2010-07-14 5 views

Répondre

16

Si cela doit mettre fin à des lignes dans un e-mail, c'est la spécification du courrier électronique que vous devez consulter, et non celle utilisée sur une plate-forme particulière.

lignes dans le courrier électronique se terminent par CRLF ("\ r \ n") selon la RFC2821

commandes SMTP et, à moins altérée par une extension de service , des données de message, sont transmis dans des "lignes" . Les lignes se composent de zéro ou plusieurs données caractères terminés par la séquence caractère ASCII "CR" (valeur hexadécimale 0D) suivi immédiatement par le caractère ASCII "LF" (valeur hexadécimale 0A). Cette séquence de terminaison est désignée par dans ce document. Conformes implémentations NE DOIVENT PAS reconnaître ou générer tout autre caractère ou d'une séquence de caractères en ligne terminaison

Cela semble assez clair que dans un courriel la fin de la ligne doit être envoyé comme \ r \ n. Envoyer n'importe quoi d'autre peut fonctionner mais c'est faux à moins que vous n'utilisiez une "extension de service" et si vous êtes alors vous savez probablement ce que vous devriez envoyer de toute façon.

+0

+1 pour consulter le RFC. Maintenant que vous avez posté cela, je me souviens vaguement de la lire une fois. –

+0

Génial. Merci pour la bonne explication JB. – Metropolis

+1

PHP sous Linux semble utiliser \ n pour séparer les lignes d'en-tête lorsque la commande mail() est utilisée. Donc, si vous utilisez \ r \ n dans un en-tête personnalisé, certains serveurs de messagerie l'interprètent comme deux caractères de nouvelle ligne et montrent une partie de l'en-tête dans le courrier. (désolé pour le commentaire de fin d'année, mais c'est toujours un problème en PHP 5.2, voir aussi http://fluxbb.org/development/core/tickets/667/) – BurninLeo

0

\r\n est la nouvelle ligne de Windows, si vous êtes clients sont pour la plupart des utilisateurs de Windows, cela ne fera que vous bien. Je pense également que la plupart des clients de messagerie non-Windows vont compenser cela de toute façon, alors \r\n ne devrait pas être un problème sur Mac ou * Nix.

1

Juste pour vous assurer:

PHP_EOL aura aucun effet sur l'e-mail au côté récepteur . Il utilisera la nouvelle combinaison de caractères de ligne courante sur le système sur lequel votre script PHP s'exécute. Donc si vous avez un serveur Linux/Unix, PHP_EOL donnera \n et si vous avez un serveur Windows, ce sera \r\n.

Aujourd'hui, il ne devrait pas trop d'importance que vous utilisez et je pense que la plupart des applications de messagerie Windows peuvent également gérer simplement \n (même afaik WordPad comprend cela, il est le Bloc-notes qui a des problèmes).

Questions connexes