apply_filters( 'wp_mail_content_type', string $content_type )
Filters the wp_mail() content type.
Parameters Parameters
- $content_type
-
(string) Default wp_mail() content type.
More Information More Information
- The default content type for email sent through the wp_mail() function is ‘
text/plain
‘ which does not allow using HTML. However, you can use thewp_mail_content_type
filter to change the default content type of the email. - In general, content type is going to be ‘
text/plain
‘ as the default, or ‘text/html
‘ for HTML email; but other MIME types are possible. - Setting the default to “
text/html
” can cause problems with default WordPress emails such as password reset. Line breaks will not appear and Gmail will strip out the reset link. See the following tickets for more info:
https://core.trac.wordpress.org/ticket/21095
https://core.trac.wordpress.org/ticket/23578
Source Source
Changelog Changelog
Version | Description |
---|---|
2.3.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Switch to HTML formatted email when using
wp_mail()
:Expand full source codeCollapse full source code
Examples migrated from Codex:
The following example will change the default content (mime) type for the
wp_mail()
function to ‘text/html’:The following example shows that it is not necessary to call another method if you can use anonymous functions (PHP 5.3.0+):
The following example shows that you could use different MIME types for different purposes by building some conditional logic into your filter:
Example migrated from Codex:
If you change the content type to `text/html`, it will cause problems with password reset emails.
To remedy this, consider:
modifying the email body of password reset emails to make it work with ‘
text/html
‘ content typeOR
reset the content type back to ‘
text/plain
‘ after you’re done sending the custom emails ( either by explicitly resetting the content type back to ‘text/plain
‘ or by removing the callback function filter that changes the content type to ‘text/html
‘ withremove_filter()
)The following example shows how to use the filter `
retrieve_password_message
` to make the email body of password reset emails work with ‘text/html
‘ content type:Expand full source codeCollapse full source code
The following example shows how to reset the content type back to ‘
text/plain
‘ by removing the callback function filter that changes the content type to ‘text/html
‘ withremove_filter()
: