apply_filters( ‘wp_mail_from’, string $from_email )

Filters the email address to send from.

Parameters

$from_emailstring
Email address to send from.

More Information

  • The wp_mail_from filter modifies the “from email address” used in an email sent using the wp_mail() function. When used together with the ‘wp_mail_from_name‘ filter, it creates a from address like “Name”. The filter should return an email address.
  • To avoid your email being marked 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() .

Source

$from_email = apply_filters( 'wp_mail_from', $from_email ); 

Changelog

VersionDescription
2.2.0Introduced.

User Contributed Notes

  1. Skip to note 6 content

    Examples migrated from Codex:

    add_filter( 'wp_mail_from', 'custom_wp_mail_from' ); function custom_wp_mail_from( $original_email_address ) {	//Make sure the email is from the same domain	//as your website to avoid being marked as spam.	return 'webmaster@mydomainname.com'; }

    Using anonymous functions (PHP 5.3.0+) for callback:

    add_filter( 'wp_mail_from', function( $email ) {	return 'webmaster@mydomainname.com'; } );
  2. Skip to note 7 content

    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 give us and array with the email user and the domain	// like this [ 'wordpress', 'example.tld' ]	$parts = explode( '@', $from_email );	// Add our new email user, add @ again, and append the domain	// This will be hello@example.tld	return 'hello@' . $parts[1]; } add_filter( 'wp_mail_from', 'wporg_replace_user_mail_from' );
  3. Skip to note 8 content

    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( $original_email_address ) {	// The $original_email_address value is wordpress@yourdomain.tld	// So we just change 'wordpress@' to something else like 'noreply@' or etc	return str_replace( 'wordpress@', 'noreply@', $original_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.