Skip to content

Instantly share code, notes, and snippets.

@butlerblog
Last active August 25, 2019 03:25
  • Star 18 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save butlerblog/5c9b805529c419b81447 to your computer and use it in GitHub Desktop.
File for testing the wp_mail function http://b.utler.co/9L
<?php
/**
* This file can be used to validate that the WordPress wp_mail() function is working.
* To use, change the email address in $to below, save, and upload to your WP root.
* Then browse to the file in your browser.
*
* For full discussion and instructions, see the associated post here:
* http://b.utler.co/9L
*
* Author: Chad Butler
* Author URI: http://butlerblog.com/
*/
/*
Copyright (c) 2012-2015 Chad Butler
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
You may also view the license here:
http://www.gnu.org/licenses/gpl.html
*/
// Set $to as the email you want to send the test to.
$to = "you@yourdomain.com";
// No need to make changes below this line.
// Email subject and body text.
$subject = 'wp_mail function test';
$message = 'This is a test of the wp_mail function: wp_mail is working';
$headers = '';
// Load WP components, no themes.
define('WP_USE_THEMES', false);
require('wp-load.php');
// send test message using wp_mail function.
$sent_message = wp_mail( $to, $subject, $message, $headers );
//display message based on the result.
if ( $sent_message ) {
// The message was sent.
echo 'The test message was sent. Check your email inbox.';
} else {
// The message was not sent.
echo 'The message was not sent!';
}
@keithpickett
Copy link

Thanks for this. I just ran it and got this error:

Fatal error: Uncaught exception 'phpmailerException' with message 'Invalid address: (setFrom) wordpress@' in /home/kuen321/public_html/jest/wp-includes/class-phpmailer.php:1023
Stack trace:
#0 /home/kuen321/public_html/jest/wp-includes/pluggable.php(352): PHPMailer->setFrom('wordpress@', 'WordPress', false)
#1 /home/kuen321/public_html/jest/wp_mail_test.php(49): wp_mail('keithp@r...', 'wp_mail functio...', 'This is a test ...', '')
#2 {main}
thrown in /home/kuen321/public_html/jest/wp-includes/class-phpmailer.php on line 1023

I stumbled across this Link where someone was reporting a similar error. The fix was to add this to functions.php:
add_filter( 'wp_mail_from', function() { return 'wordpress@[MyDomain]'; } );

I just put it in above the wp_mail() call and it worked.
Thanks,
Keith

@ownboss2015
Copy link

Received this: The test message was sent. Check your email inbox.

No email though...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment