View Full Version : PHP email converts new line to \r\n?!

08-30-2011, 10:07 PM
Please help,

When I sent an email like this:

test body
next line

it came to my email like this:

test body\r\nnext line\r\nwww.google.co.uk

here is my code:

mysql_connect("xxx", "xxx", "xxx");
$EmailTitle = mysql_real_escape_string($_POST['EmailTitle']);
$EmailBody = mysql_real_escape_string($_POST['EmailBody']);
$id = mysql_real_escape_string($_POST['id']);

$query5 = mysql_query("SELECT * FROM aarbookts_booking_bookings WHERE id = '$id'");
$row5 = mysql_fetch_array($query5);

$customer_name = $row5['customer_name'];

$to = $row5['customer_email'];
$subject = $EmailTitle;
echo $to;

$message = <<<EOF
//end of message
$headers = "From: me@myemail.com\r\n";
$headers .= "Content-type: text/html\r\n";

//options to send to cc+bcc
//$headers .= "Cc: maa@p-i-s.cXom";
//$headers .= "Bcc: email@maaking.cXom";

// now lets send the email.
mail($to, $EmailTitle, $message, $headers);
$msg = "Mass email sent";
header("Location: send-mass-email.php?msg=$msg");


08-30-2011, 11:19 PM
I assume that is provided by the $_POST['EmailBody']? These should NOT be run through a mysql_real_escape_string. They should instead be run through a str_replace and presumably followed by an nl2br:

$EmailBody = nl2br(str_replace("\r\n", "\n", $_POST['EmailBody']));

Mysql_real_escape_string is used ONLY for data being placed into a SQL query.