How can I change the header of WordPress ‘retrieve_password’ email?

I noticed WordPress give us some filters to customize the password reset request email like wp_mail_from, retrieve_password_title and retrieve_password_message and these last two are executed in the retrieve_password function at wp-login.php as following:

$title = apply_filters( 'retrieve_password_title', $title );
$message = apply_filters( 'retrieve_password_message', $message, $key );

if ( $message && !wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) )
    wp_die( __('The e-mail could not be sent.') . "<br />n" . __('Possible reason: your host may have disabled the mail() function.') );

return true;

That’s cool but I also realized the wp_mail function does not use any header which make me believe everything should be override with filters.

Read More

Is there a filter to override the headers? Specifically Content-Type? And where would be the best place to register them?

Related posts

Leave a Reply

1 comment

  1. To run the filter wp_mail_content_type only in wp-login.php page, we can use one of its action hooks. Untested:

    add_action( 'login_form_retrievepassword', function()
    {
        add_filter( 'wp_mail_content_type', function( $old_content_type )
        {
            $new_content_type = 'text/plain';
            return $new_content_type;
        });
    });