首页 文章

联系表单中的PHPMailer Postfix:如何防止在'spoofing'用户电子邮件时被标记为垃圾邮件

提问于
浏览
1

这是我的情况:

我正在使用PHPMailer和Postfix的组合来从联系表单获取信息到邮箱 . 我希望看起来好像从联系表单到达的电子邮件是从提交数据的用户发送的(而不是从root@domain.com发送的) .

我现在解决这个问题的方法是设置From电子邮件和名称,如下所示:

$m->setFrom($email, $name);

出现的问题如下:由于设置了From电子邮件,我的电子邮件提供商(zoho)将其视为垃圾邮件(我假设因为我在技术上欺骗了电子邮件地址),因此它位于垃圾邮件文件夹中 .

有没有办法让它登陆我的收件箱?是否有某种方法可以将“欺骗”发件人(即我的服务器)列入白名单?

我意识到这可以通过单独留下From email字段并使用 $m->addReplyTo 来完成 . 但我赢了't be the only one using the email account, and I want to avoid any confusion. What I mean is, if someone sees an email coming in, and they a specific name, but then an email address that doesn't对应这个名字,他们可能会感到困惑,或者在回复或向该人发送新电子邮件时犯了错误(他们是一个对我来说不太可行的解决方案) .

这是电子邮件设置的完整代码:

$name    = $_POST['name'];
$email   = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];

$m = new PHPMailer;
$m->isSendmail();

$m->setFrom($email, $name);
$m->addAddress('my@inbox.com');

$m->Subject = $subject;
$m->Body = $message;

1 回答

  • 1

    不,你可以't forge from addresses and expect it to work. The right way is to put your own address in the from address, and the submitter'在回复中的地址 . 您可以通过将提交者的姓名和发件人地址放在一起来避免视觉混淆 . 这样它看起来就好像没有锻造任何东西 .

    $m->setFrom('my@inbox.com', $name);
    $m->addAddress('my@inbox.com');
    $m->addReplyTo($email);
    

相关问题