繁体   English   中英

使用正确的 email 地址 / phpmailer 将副本发送给发件人

[英]Get copy to sender with correct email adress / phpmailer

我为联系页面使用了一个非常简单的 phpmailer 脚本。

<?php
if( isset($_POST['name']) )
{
    $to = 'info@xxx.xxxx'; // Replace with your email

    $subject = $_POST['subject'];
    $message = $_POST['message'] . "\n\n" . 'Regards, ' . $_POST['name'] . '.';
    $headers = 'From: ' . $_POST['email'] . "\r\n" . 'Reply-To: ' . $_POST['email'] . "\r\n" . 'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers);

    if( $_POST['copy'] == 'on' )
    {
        mail($_POST['email'], $subject, $message, $headers2);
    }
}
?>

但问题是,如果发送副本,它的“来自”header 的详细信息是错误的……所以在示例中:


From: yakashimoto@xzy.xx
Reply to: yakashimoto@xzy.xx
To: yakashimoto@xzy.xx
but i need
From: info@xxx.xxx
reply to: info@xx.xxx
to: yakashimoto@xyz.xx

这通常是行不通的,因为它是伪造的,而且大多数托管服务提供商都不允许这样做,例如 gmail 不允许。

正确的做法是将您自己的 email 地址放在fromto标头中,并将提交者的地址放在reply-to

尽管您的代码很短,但它是一个垃圾邮件网关,攻击者可以利用它通过您的联系表发送无限量的 email。 我建议您重新开始使用一些保护得更好的代码,例如您标记此问题的PHPMailer 提供的联系表单示例

暂无
暂无

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

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