DexCurl
DexCurl

Reputation: 1703

How do I send HTML formatted mail using PHP?

Trying to send a html email via mail(), however gmail just displays the email as plain text, no mark up, eg:

mail("[email protected]", "subject", "<i>Italic Text</i>");

just appears as

<i>Italic Text</i>

Any ideas?

Upvotes: 7

Views: 26227

Answers (5)

user123
user123

Reputation: 51

In order for it to be properly interpreted, you must also set the headers in the email, especially:

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

You should also set the other usual headers. The message can finally be sent like this:

mail($to, $subject, $message, $headers);

You should refer to the php manual mail page for more information.

Upvotes: 1

bluefoot
bluefoot

Reputation: 10570

I believe you must set the content-type to text/html in your headers.

Something like the string "Content-type:text/html"

Where to "insert" this header? Take a look at the function reference at http://php.net/manual/en/function.mail.php

Upvotes: 3

Ant
Ant

Reputation: 3887

You need to have a properly formed html doc:

$msg = "<html><head></head><body><i>Italic Text</i></body></html>";

Edit:

And send headers:

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

mail("[email protected]", $msg, $headers);

Upvotes: 3

user254875486
user254875486

Reputation: 11240

You have to specify that the contents of the mail is HTML:

mail("[email protected]", "subject", "<i>Italic Text</i>", "Content-type: text/html; charset=iso-8859-1");

Upvotes: 16

Daniel A. White
Daniel A. White

Reputation: 190897

See example 4 on this page:

http://php.net/manual/en/function.mail.php

Upvotes: 7

Related Questions