2011-04-13 26 views
6

he desarrollado un formulario de contacto PHP simple, que está funcionando muy bien, pero no soy capaz de dar formato al cuerpo del mensaje como por mi requerimiento, mi código se da a continuación, que estoy recibiendo correo en un formato de una sola línea,cómo formatear el cuerpo del mensaje de correo electrónico?

donde quiero todos los datos en una nueva línea como esta
"Nombre: Syed Ahmed Sheeraz
contacto No: 03453594552
Email: [email protected]
. Dirección: R-47, Sector 9, ciudad del Norte
Requisito: hola, ¿cómo estás? "

<?php 
$to = "[email protected]"; 
$subject = "From Website Contact Form"; 
$name = $_REQUEST['name'] ; 
$contact = $_REQUEST['contact'] ; 
$address = $_REQUEST['address'] ; 
$MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
$MESSAGE_BODY .= "Contact No: ".$_POST["contact"]."<br>"; 
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
$MESSAGE_BODY .= "Address: ".$_POST["address"]."<br>"; 
$MESSAGE_BODY .= "Requirement: ".nl2br($_POST["message"])."<br>"; 
$message = $_REQUEST['message' + 'address' + 'contact'] ; 
$from = $_REQUEST['email'] ; 
$headers = "From:" . $from; 
mail($to,$subject,$MESSAGE_BODY,$headers); 
echo "Mail Sent."; 
?> 

Respuesta

13

Desea una nueva línea (\n), no un salto de línea HTML (<br>) ya que su correo electrónico no está marcado como HTML (y los correos que tienen cuerpos HTML deberían tener cuerpos MIME multiparte con texto plano y Las versiones HTML desde "solo HTML" es una buena bandera para los detectores de spam).

+0

1 Publicado justo antes de mí :) – MRW

+0

agradecimiento mucho, funcionó. – Sheery

5

Si su correo electrónico está enviando como texto, las etiquetas
no harán nada. Intente utilizar un nuevo carácter de línea, por ejemplo:

$ MESSAGE_BODY = "Nombre:". $ _ POST ["nombre"]. "\ N";

Eso debería ordenar su problema.

en el ejemplo anterior <br> se imprime después de la variable impresa, ¿por qué? cómo eliminar <br> por ejemplo:

$_Post["name"] tiene valor "jhon".
imprime: jhon<br>

5

Como está utilizando la etiqueta html en el contenido de su correo electrónico.

Ajuste el content- typetext/html en la cabecera de su correo

$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

O

puede ahorrarse de este tipo de problemas utilizando phpmailer

Cuestiones relacionadas