nuevas líneas (\ r \ n) no funcionan en el cuerpo del correo electrónico

Estoy usando la función PHP mail ():

$to = 'AAAA '; $subject = 'BBBB'; $message = "CCCC\r\nCCCC CCCC \r CCC \n CCC \r\n CCC \n\r CCCC"; $headers = 'From: DDD' . "\r\n"; $headers .= "Content-type: text/html; charset=\"UTF-8\"; format=flowed \r\n"; $headers .= "Mime-Version: 1.0 \r\n"; $headers .= "Content-Transfer-Encoding: quoted-printable \r\n"; mail($to, $subject, $message, $headers); 

Cuando recibo este correo electrónico, se ve así:

 CCCC CCCC CCCC CCC CCC CCC CCCC 

Esperaría algo como esto:

 CCCC CCCC CCCC CCC CCC CCC CCCC 

Funciona bien sin encabezado “Content-type:”. ¿Cómo puedo crear nuevas líneas y usar mi statement de tipo de contenido?

Necesita utilizar una
porque su content-type es text/html .

funciona sin el encabezado de content-type porque entonces su correo electrónico se interpretará como texto sin formato. Si realmente quieres usar \n debes usar content-type: text/plain pero luego perderás cualquier marcado.

pregunta similar aquí

Si está enviando un correo electrónico HTML, utilice
(o
) como se indica.
Si está enviando un mensaje de texto sin formato, use % 0D% 0A
\ r = % 0D (Ctrl + M = retorno del carro)
\ n = % 0A (Ctrl + A = alimentación de línea)

Si tiene un enlace de correo electrónico en su correo electrónico,
P.EJ

 Send email 

Luego use % 250D% 250A

% 25 =%

Necesita utilizar
lugar de \r\n . Para esto puede usar la llamada de función incorporada nl2br Entonces su código debería ser así

  $message = nl2br("CCCC\r\nCCCC CCCC \r CCC \n CCC \r\n CCC \n\r CCCC"); 

Si usa content-type: text/html , debe poner una
porque su mensaje será amenazado como un archivo html .

Pero si cambia su content-type a text/plain lugar de text/html , podrá usar caracteres \r\n .

Puede agregar un nuevo carácter de línea en texto / tipo de contenido simple usando el código de carácter % 0A .

Por ejemplo:

  

Aquí está el jsfiddle

Usar
no es siempre suficiente. MS Outlook 2007 ignorará esto si no le dice a Outlook que es una etiqueta html que se cierra automáticamente al usar

  

Esto funcionó para mí.

 $message = nl2br(" ===============================\r\n www.domain.com \r\n ===============================\r\n From: ".$from."\r\n To: ".$to."\r\n Subject: ".$subject."\r\n Message: ".$_POST['form-message']);