我们真的需要在PHP邮件中使用-f标志吗?为什么?

时间:2015-03-13 19:00:04

标签: php email

我总是在我的php应用程序中包含-f标志,因为我认为这很重要,因为文档告诉我们:

  

应将Web服务器运行的用户添加为受信任的用户   到sendmail配置,以防止'X-Warning'标头   使用时设置信封发件人(-f)时添加到邮件中   这种方法。对于sendmail用户,此文件是/ etc / mail / trusted-users。

所以看起来它用于防止欺骗 - 通过验证我是谁。然后我做了一个实验。事实证明,如果我不包括-f,当我发送邮件时仍然没有X警告。事实上,发送者甚至不需要自己。例如,我尝试Obama@whitehouse.org作为发件人,我收到的电子邮件没有任何警告。我甚至尝试使用Obama@whitehouse.org向几个电子邮件帐户发送几百封电子邮件,但这些邮件并未被标记为垃圾邮件。

所以,我的问题是,-f标志真的有什么作用(因为在我看来,如果没有它,电子邮件会发送得很好)?

1 个答案:

答案 0 :(得分:2)

-f标志用于指定envelope sender地址。您应该使用-f标志来设置此地址,使其与邮件标题中的FROM地址匹配,否则一些垃圾邮件过滤器将更有可能将邮件视为垃圾邮件,因为这两者都是不匹配。

您可以执行以下操作来设置两者,以便它们匹配:

$to = "to@to.com";
$from = "from@from.com";
$subject = "subject";
$message = "this is the message body";

$headers = "From: $from"; 
$ok = @mail($to, $subject, $message, $headers, "-f " . $from);