如何防止phpmailer发送带有不同“来自”地址的电子邮件?

时间:2012-12-23 05:18:41

标签: php email phpmailer

我问这个问题只是因为我很好奇,可能这是一个非常愚蠢和非常有名的事情,但我无法在网上找到答案:

今天我用他的网站帮助了一位朋友。他让我准备一个html电子邮件模板,他可以通过他的网站(例如www.myfriendswebsite.com)用phpmailer发送。我准备了它并在我的域/服务器中测试,将他的电子邮件地址(例如info@myfriend.com)放在“from”部分。我通过我的网站(例如www.mywebsite.com)发送了一封电子邮件到我的个人电子邮件地址(例如myname@hotmail.com),当我收到电子邮件时,我意识到我甚至没有看到我的域名。姓名或电子邮件地址(例如info@mydomain.com);相反,我看到了我朋友的电子邮件地址(info@myfriend.com)。当我点击“回复”时,它会回复我朋友的地址;它看起来好像是直接从我朋友的网站发送的。当然;如果我提取原始来源,我会看到收到电子邮件的位置的详细信息,但是什么阻止了其他人使用我的电子邮件地址和垃圾邮件的人?我很确定这是另一种发送垃圾邮件和黑客攻击人们帐户的方法,但有没有办法防止这种情况发生?它吓到了我一点,我不知道还有什么地方可以转,但Stackoverflow:)

3 个答案:

答案 0 :(得分:6)

首先,您不应发送电子邮件,其中From:由用户提供的数据填充;为此目的使用Reply-To:标题。

您不应该这样做的原因是因为收件箱服务(例如Google Mail,Yahoo等)使用Sender Policy Framework (SPF)来确定发送邮件的邮件服务器是否有权代表域发送;您可能会冒险从您的服务器发送的邮件被识别为垃圾邮件而不会被传递。

所以,为了回答你的问题,即使可以伪装任何人的电子邮件地址,由于改进垃圾邮件过滤器和black lists而越来越难以获得这些邮件,这样做甚至可以获得你的邮件服务器列入黑名单。

答案 1 :(得分:2)

  是什么阻止了其他人使用我的电子邮件地址和垃圾邮件的人?

无。想象一张明信片,是什么阻止别人使用你的地址并将明信片寄到世界各地?什么都没有。

同样适用于电子邮件,即互联网明信片。

答案 2 :(得分:1)

像这样编辑标题会/应该解决问题。

$headers = 'From: info@myfriend.com' . "\r\n";
$headers .= 'Reply-To: info@myfriend.com' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";