我有一个带有页面模板的页面,该页面模板通过post方法接收数据(数据在支付网关中处理,并将响应发送到wordpress)。该数据在模板中处理,创建一个html文档,该文档通过电子邮件发送,作为使用wp\\u mail()功能的消息正文,如果用户执行该过程,则会正确生成和发送电子邮件,即使有附件,用户也会收到一个版本,相应的员工也会收到另一个版本,问题是员工每天都会收到空邮件,我想知道如何避免这种情况?这就是我发送邮件的方式
$subject = "Payment Options";
$headers = "MIME-Version: 1.0\\r\\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\\r\\n";
$headers .= "Return-Path: <[email protected]>"."\\n";
$message = "builded HTML";
function ejr_email_desde ($email) {
return "[email protected]";
}
add_filter ("wp_mail_from", "ejr_email_desde");
$attach = array(\'path to attached files\');
$sent = wp_mail("[email protected]", $subject, $message,$headers, $attach);
wp_mail("[email protected]", $subject, $message,$headers, $attach);
wp_mail("[email protected]", $subject, $message,$headers, $attach);
wp_mail("[email protected]", $subject, $message,$headers, $attach);
wp_mail("[email protected]", $subject, $message,$headers, $attach);
$subject = "Subject";
$headers .= "MIME-Version: 1.0\\r\\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\\r\\n";
$message = "The builded HTML";
$attachments = array(\'path to attachment\');
wp_mail(\'client@email\', $subject, $message,$headers,$attachments);
这是空的html
当用户执行该过程时,字段填写正确,我想要的是避免生成没有数据的电子邮件
最合适的回答,由SO网友:WebElaine 整理而成
快速检查以确保$_POST
付款变量存在且不为空。
所以在文件的顶部
if(!empty($_POST[\'paymentinfovariable\'])) {
// put all your current code here
// that way POST info is only processed, and email is only sent,
// if your required variable has been properly POSTed.
} else {
// redirect to the homepage
wp_redirect( home_url() );
exit;
}
这样,如果缺少所需的post变量(即某人正在访问URL),他们将被重定向到主页,并且不会发送电子邮件。您可以进一步检查发布的变量是否具有正确的格式、是否来自正确的引用域等,以进一步保护您的安全。
你可能还应该查看你的网站地图——人们(或机器人)点击这个页面是有原因的,这可能很简单,只要用你正在使用的任何SEO插件将你的网站地图设置为meta-noindex即可。