wordpress wp_mail is sending my html message as a text attachment

This is the code to send the mail:

$to = $_POST['leadEmail'];
$subject = "my subject";
$message = ( $_POST['leadEmailPref'] == "html" ) ? $messageh : $messagep ;
$headers[] = "From: My Name <ny_name@gmail.com>";
$headers[] = "Content-type: ".$_POST['leadEmailPref'] ;

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

When I go to my inbox, the message is sent as an attachment and I don’t see the message. Obviously I don’t want the attachment, and I want the person who receives the email to see the message immediately.

Related posts

Leave a Reply

2 comments

  1. You should try:

    add_filter( 'wp_mail_content_type', 'set_html_content_type' );
    
    wp_mail( 'To Email', 'Subject', '<h1>Html Email</h1>' );
    
    function set_html_content_type() {
        return 'text/html';
    }
    
    remove_filter( 'wp_mail_content_type', 'set_html_content_type' );