Php mail function not sending in html format

10,124

this is most likely the problem: 'MIME-Version: 1.0\r\n' . '\r\n' .

after two endlines the headers end and the body starts. So your content-type declaration of text/html is being parsed as message body, while it belongs to headers.

remove one endline and it should work:

'MIME-Version: 1.0\r\n'

also I noticed you use single quotes for \r\n. You should use double quotes or else they will be escaped. You need them to be parsed.

 'From: [email protected]' . "\r\n" .
                'Reply-To: [email protected]' . "\r\n" .
                'X-Mailer: PHP/' . phpversion() . "\r\n" .
                'Content-Type: text/html; charset=ISO-8859-1'."\r\n".
                'MIME-Version: 1.0'."\r\n\r\n";
Share:
10,124
omega
Author by

omega

Updated on July 17, 2022

Comments

  • omega
    omega almost 2 years

    In PHP, I'm trying to send emails in HTML format. So far I have this

                $subject = "Password Reminder";
                $message = "Your password is <b>{$password}</b>.<br/><br/><br/><br/>me";
                $message = wordwrap($message, 70, "\r\n");
                $headers = 'From: [email protected]' . '\r\n' .
                    'Reply-To: [email protected]' . '\r\n' .
                    'X-Mailer: PHP/' . phpversion() . '\r\n' .
                    'MIME-Version: 1.0\r\n' . '\r\n' .
                    'Content-Type: text/html; charset=ISO-8859-1\r\n';
    
                mail($email, $subject, $message, $headers);
    

    I followed this guide: http://css-tricks.com/sending-nice-html-email-with-php/

    But when I get the email, it shows with the tags, I want it to interpret the tags into html.

    Does anyone know whats wrong?

    Thanks.