WordPress

Change WordPress Email Content Types To HTML

All emails in WordPress are sent using the function wp_mail, the default content type for these email are in text/plain, which does not allow HTML to be placed in your emails.

If you want to create custom HTML emails you need to change the content type of the emails to allow you to have HTML in them.

To change the content type of WordPress email you can use the filter wp_mail_content_type.

add_filter( 'wp_mail_content_type', 'set_html_content_type' );
/**
 * Set the HTML content type
 */
function set_html_content_type()
{
    return 'text/html';
}

All you will have to do is return from the filter the string text/html which will set the content type to HTMLs allowing you to style emails in anyway you want. Allowing you to brand your emails with your website logo or include other images like post feature images in the email.

Back to top

Learn how to code with Treehouse

  • Learn projects with access to 1000+ videos
  • Practice live with our Code Challenge Engine
  • Get help in our members-only forums

Start with a 7 day free trial