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.