Eduardo Go
Eduardo Go

Reputation: 401

PHP: Line Breaks on email sending not working

The following PHP code works perfectly, but it is not doing line breaks for some reason.

PHP:

$headers  = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$headers .= "From: '".$title."' <".$store_email."> \n";
$subject = "New Payment Received";
//MESSAGE
$message =  "New payment was successfully recieved through paypal payment terminal:";
$message .= "\r\n\nFrom ".$paypal->pp_data['payer_email'];
$message .= "\r\nPaid: ".$paypal->pp_data['payment_gross']." ".$paypal->pp_data['mc_currency'];
$message .= "\r\nDate: ".date('d/m/Y');
$message .= "\r\nTime: ".date('g:i A');
mail($admin_email,$subject,$message,$headers);

Any wonder what's wrong? Thanks in advance.

Upvotes: 0

Views: 2722

Answers (2)

user1946891
user1946891

Reputation: 955

The direct answer ceejayoz gives is correct and to the point in that the html element <br> is needed because it is a html email. The bigger issue is that not all email is readable in html (example: user doesn't allow html emails). Anyone sending email should send it in 2 parts. One being a html formatted message and the other "alternative" in plain text. In that way the recipient will be able to read the email regardless of email reader. The \r\n line break works in plain text alternative part and in html<br> or other elements as needed to format. Doing this will avoid the next question. Recipients are complaining my emails are blank.

Upvotes: 0

ceejayoz
ceejayoz

Reputation: 180014

You're sending HTML e-mail. Line breaks have no meaning in HTML, you'll need <br /> tags.

Upvotes: 6

Related Questions