在整理完整的实现之前,我已经设置了一个简单的邮件程序。我尝试了一些电子邮件地址,但没有收到它们,即使它返回“true”。如果这有什么不同的话,我也在使用wp\\uajax。
功能。php
// Check for email return in share folders
add_action( \'wp_ajax_share_email\', \'share_email\' );
add_action( \'wp_ajax_nopriv_share_email\', \'share_email\' );
function share_email(){
$email = $_POST[\'email\'];
// Return a boolean!
$to = $email;
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$headers = "From:" . $from;
if(wp_mail($to,$subject,$message,$headers)) {
return true;
} else {
return false;
}
}
有人能告诉我为什么这不发送吗?我不允许一起使用wp\\u mail和wp\\u ajax吗?
谢谢
EDITJquery部件
$(\'#share-pop .btn\').click(function(){
var email = check.val();
jQuery.ajax({
type: \'POST\',
url: ajaxurl,
data: {"action" : "share_email", \'email\': email},
success: function(data){
if (data) {
alert(\'sent\');
} else {
alert(\'An error occured\');
}
}
});
});
最合适的回答,由SO网友:s_ha_dum 整理而成
您需要为标题字段提供或换行符。例如:
$headers = "From:" . $from . PHP_EOL;
或者将标题字段放入数组中,在这种情况下,不需要手动添加换行符。
$headers[] = "From:" . $from;
电子邮件标题不是“普通”文本。那些行尾是有意义的。它们是控制字符。
有examples in the Codex.
SO网友:Adam
如果我在此处出错,请更正,但您没有收到电子邮件,因为您没有调用上的函数TRUE
.
// Check for email return in share folders
add_action( \'wp_ajax_share_email\', \'share_email\' );
add_action( \'wp_ajax_nopriv_share_email\', \'share_email\' );
function share_email(){
$email = $_POST[\'email\'];
// Return a boolean!
$to = $email;
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "[email protected]";
$headers = "From:" . $from;
if($to && $subject && $message && $headers) {
wp_mail($to,$subject,$message,$headers);
} else {
return false;
}
}