Email sent from WordPress has HTML tags

Instead of:

Hello,

Thank you dfasdfasdfasdf asdf asdf asdfas dfs

Please, feelasdf asdf asdf 

The email that arrives in my mailbox looks like the following:

Read More
<p>Hello,</p> 
<p>&nbsp;</p> 
<p>Thank you dfasdfasdfasdf asdf asdf asdfas dfs</p> 
<p>&nbsp;</p> 
<p>Please, feel asdfads fad f</p> 

So, I guess the HTML is not turned on for the wp_mail() function? How do you turn it on so the mail will arrive as it should and the <p> and <br> tags are interpreted correctly?

I am using this to send my mail from functions.php when the submit button is pressed:

   $headers = 'From: XXXXXX.com <info@xxxxx.com>' . "rn";
   $subject = 'Registration from xxxxx.com' . "rn"; 
   $message = $result_email_text;
   wp_mail($_POST['admin_email'], $subject, $message, $headers );

Related posts

1 comment

  1. The default content type is 'text/plain' which does not allow using HTML. You can set the content type of the email by including a header like “Content-type: text/html”

    $headers = 'Content-type: text/html;charset=utf-8' . "rn";
    $headers .= 'From: XXXXXX.com <info@xxxxx.com>' . "rn";
       $subject = 'Registration from xxxxx.com' . "rn"; 
       $message = $result_email_text;
       wp_mail($_POST['admin_email'], $subject, $message, $headers );
    

    Or you can set it by using the wp_mail_content_type filter

    remove_filter( 'wp_mail_content_type', 'set_html_content_type' );
    add_filter( 'wp_mail_content_type', 'set_html_content_type' );
    function set_html_content_type() {
    
        return 'text/html';
    }
    

    For more detail see the following link:
    http://codex.wordpress.org/Function_Reference/wp_mail

Comments are closed.