2010-07-14 18 views

Respuesta

16

Si esto es para terminar líneas en un correo electrónico, entonces es la especificación de correo electrónico que debe mirar, no lo que se utiliza en una plataforma en particular.

Líneas en email se terminan mediante CRLF ("\ r \ n") de acuerdo con RFC2821

comandos SMTP y, a menos alterada por una extensión servicio, datos del mensaje, se transmiten en "líneas" . Las líneas consisten en cero o más datos caracteres terminados por la secuencia carácter ASCII "CR" (valor hexadecimal 0D) seguidos inmediatamente por ASCII carácter "LF" (valor hexadecimal 0A). Esta secuencia de terminación se denota como en este documento. conformes implementaciones NO DEBEN reconocer o generar cualquier otro carácter o secuencia de caracteres como una línea terminador

Eso parece bastante claro que en un correo electrónico al final de la línea es para ser enviados como \ r \ n. Enviar cualquier otra cosa podría funcionar, pero está mal, a menos que esté usando una "extensión de servicio" y, si lo está, probablemente sepa lo que debe enviar de todos modos.

+0

+1 para consultar el RFC. Ahora que has publicado eso, recuerdo vagamente haber leído eso una vez. –

+0

Impresionante. Gracias por la gran explicación JB. – Metropolis

+1

PHP en Linux parece usar \ n para separar las líneas de encabezado cuando se usa el comando mail(). Entonces, si usa \ r \ n dentro de un encabezado personalizado, algunos servidores de correo interpretan esto como dos caracteres nuevos y muestran parte del encabezado en el correo. (perdón por el comentario del año anterior, pero este sigue siendo un problema en PHP 5.2, ver también http://fluxbb.org/development/core/tickets/667/) – BurninLeo

0

\r\n es la nueva línea de Windows, si estás clientes son en su mayoría los usuarios de Windows, entonces esto le hará bien.

También creo que la mayoría de los clientes de correo electrónico que no sean de Windows compensarán esto de todos modos, por lo que \r\n no debería ser un problema en Mac o * Nix.

1

Sólo para asegurarse de:

PHP_EOL tendrá ningún efecto sobre el correo electrónico en el ladoreceptor. Utilizará la nueva combinación de caracteres de línea que es común en el sistema en el que se ejecuta su secuencia de comandos PHP.

Si tiene un servidor Linux/Unix, PHP_EOL dará como resultado \n y si tiene un servidor de Windows, será \r\n.

Hoy en día, no debería importa tanto que se utilice y yo creo que la mayoría de aplicaciones de correo electrónico de Windows también pueden manejar casi \n (que yo sepa aún WordPad entiende esto, es el Bloc de notas que tiene problemas).

Cuestiones relacionadas