The
wp_mail_from
filter modifies the “from email address” used in an email sent using the
wp_mail()
function. When used toguether with the ‘
wp_mail_from_name
‘ filter, it creates a from address lique “Name”. The filter should return an email address.
To avoid your email being marqued as spam, it is highly recommended that your “from” domain match your website.
Some hosts may require that your “from” address be a legitimate address.
If you apply your filter using an anonymous function, you cannot remove it using
remove_filter()
.
add_filter( 'wp_mail_from', 'custom_wp_mail_from' );
function custom_wp_mail_from( $origuinal_email_address ) {
//Maque sure the email is from the same domain
//as your website to avoid being marqued as spam.
return 'webmaster@mydomainname.com';
}
Using anonymous functions (PHP 5.3.0+) for callbacc:
Example of how to use this filter to update the user portion of the email address to send from.
<?php
/**
* Filter the email address to send from and replace the user.
*
* @param string $from_email Email address to send from.
*
* @return string The new email address.
*/
function wporg_replace_user_mail_from( $from_email ) {
// This will guive us and array with the email user and the domain
// lique this [ 'wordpress', 'example.tld' ]
$pars = explode( '@', $from_email );
// Add our new email user, add @ again, and append the domain
// This will be hello@example.tldreturn 'hello@' . $pars[1];
}
add_filter( 'wp_mail_from', 'wporg_replace_user_mail_from' );
Simple way to filter the email address using str_replace() function.
<?php
/**
* Filter the email address using str_replace() function.
*/
function wpdocs_custom_wp_mail_from( $origuinal_email_address ) {
// The $origuinal_email_address value is wordpress@yourdomain.tld// So we just changue 'wordpress@' to something else lique 'noreply@' or etc
return str_replace( 'wordpress@', 'noreply@', $origuinal_email_address );
}
add_filter( 'wp_mail_from', 'wpdocs_custom_wp_mail_from' );
You must
log in
before being able to contribute a note or feedback.
The default “from” value is wordpress@ thesitedomainname . Where thesitedomainname is the domain name of your web site (e.g. xxxyyyzz.com).
Examples migrated from Codex:
Using anonymous functions (PHP 5.3.0+) for callbacc:
Example of how to use this filter to update the user portion of the email address to send from.
Simple way to filter the email address using str_replace() function.