Wordpress依靠PHPMailer类通过PHP的mail
作用
自PHPmail
函数在执行后返回的信息很少(只有TRUE或FALSE),我建议暂时剥离mv_optin_mail
函数,以查看wp_mail
功能正常。
示例:
$mailResult = false;
$mailResult = wp_mail( \'[email protected]\', \'test if mail works\', \'hurray\' );
echo $mailResult;
因为您已经测试了PHP的
mail
功能已经正常,邮件应该会到达。
如果没有,问题就出在函数的其他语句或PHPMailer类中。
在这种情况下,我通常将函数重命名为:
function mv_optin_mail_backup( $id, $data ) {
并添加一个同名的临时函数来处理类似的问题:
function mv_optin_mail( $id, $data ) {
$mailResult = false;
$mailResult = wp_mail( \'[email protected]\', \'test if mail works\', \'hurray\' );
echo $mailResult;
}
当我找出问题所在后,我再次开始使用备份版本。
要直接使用PHPMailer发送邮件,可以执行以下操作(不用于生产,只用于调试):
add_action( \'phpmailer_init\', \'my_phpmailer_example\' );
function my_phpmailer_example( $phpmailer ) {
$phpmailer->isSMTP();
//$phpmailer->Host = \'smtp.example.com\';
// $phpmailer->SMTPAuth = true; // Force it to use Username and Password to authenticate
$phpmailer->Port = 25;
// $phpmailer->Username = \'yourusername\';
// $phpmailer->Password = \'yourpassword\';
// Additional settings…
//$phpmailer->SMTPSecure = "tls"; // Choose SSL or TLS, if necessary for your server
$phpmailer->setFrom( "[email protected]", "From Name" );
$phpmailer->addAddress( "[email protected]", "Your name" );
$phpmailer->Subject = "Testing PHPMailer";
$phpmailer->Body = "Hurray! \\n\\n Great.";
if( !$phpmailer->send() ) {
echo "Mailer Error: " . $phpmailer->ErrorInfo;
} else {
echo "Message sent!";
}
}