繁体   English   中英

联系表格php脚本将垃圾邮件发送到Gmail

[英]Contact form php script sending spam to Gmail

我创建了一个php脚本(用于联系表格)以将电子邮件发送到我的Gmail帐户。
如果我在标头( $ headers =“ From:”。$ email; )中使用发件人电子邮件,则Gmail会将收到的邮件报告为垃圾邮件。
如果我没有在标题中使用电子邮件(例如,发件人名称$ headers =“ From:”。$ name; ),则该邮件不会报告为垃圾邮件。
您是否有任何建议让我使用标题中的电子邮件?
谢谢!

<?php

/* Check if the url field is empty (antispam) */
if ($_POST['leaveblank'] != '' or $_POST['dontchange'] != 'http://') {
    $name = $_POST['name'];
    $faillink = "xxx.php";
    header("Location: $faillink");
} else {

    $name = $_POST['name'];
    $email = $_POST['email'];
    $subject_prefix = "[ContactForm]: ";
    $subject = $subject_prefix . $_POST['subject'];
    $message = $_POST['message'];
    $to = "myemail@gmail.com";

    $body = "From: " . $name . "\n";
    $body .= "Email: " . $email . "\n";
    $body .= "Message: " . $message . "\n";

    $headers = "From: " . $email;

    $oklink = "yyy.php";
    $faillink = "xxx.php";

    if ( preg_match( "/[\r\n]/", $name ) || preg_match( "/[\r\n]/", $email ) ) {
        header("Location: $faillink");
    }

    $retmail = mail($to, $subject, $body, $headers);
    if ($retmail) {
        header("Location: $oklink");
    } else {
        header("Location: $faillink");
    }
}

?>

我按照Iain的建议解决了这个问题,因此我按如下所示替换了邮件头:

$headers = "From: " . "noreplay@mydomain.com" . "\r\n";
$headres .= "Reply-To: " . $email . "\r\n";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM