add_filter('wp_mail_from', function($email){
	return str_replace('wordpress@', 'webmaster@', $email );
});

add_filter('wp_mail_from_name', function($name){
	return $name === 'WordPress' ? get_bloginfo('name') : $name;
});

Here’s a version that uses the admin email set in in wordpress settings. This isn’t a great idea if the admin email isn’t a domain you own and can add the sending IP to the domain’s SPF record.

add_filter('wp_mail_from', function($email){
    if( substr($email,0,10) === 'wordpress@')
        $email = get_option('admin_email');
    return $email;
});

I’ve seen someething weird happen when the blog name had an apostrophe, so I did this dumb workaround:

add_filter('wp_mail_from_name', function($name){
    if($name === 'WordPress')
        $name = str_replace( '’', "'", get_option('blogname') );
    return $name;
});

Leave a Comment