2012-12-23 72 views
1

我在问这个问题只是因为我很好奇,可能它是一个非常愚蠢和非常知名的事情,但我无法在网上找到答案:如何防止phpmailer用不同的“发件人”地址发送电子邮件?

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

+0

请分享您使用的相关的PHP代码,以便我们可以指出您错误的位置。 – saji89

回答

6

其中之一,你不应该发送电子邮件,From:由用户提供的数据填充;出于此目的使用Reply-To:标题。

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

因此,要回答你的问题,尽管有可能伪装成任何人的电子邮件地址,它变得越来越难以得到应有改善垃圾邮件过滤器和black lists传递这些信息,而这样做甚至可以让你的邮件服务器被列入黑名单。

+0

这并不完全回答我的问题,但你给了我很好的信息,因此我接受它作为答案。谢谢! –

1

编辑你的头像这样会/应该解决这个问题。

$headers = 'From: [email protected]' . "\r\n"; 
$headers .= 'Reply-To: [email protected]' . "\r\n"; 
$headers .= 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
+0

PHPMailer不以这种方式执行标题。这个具体的例子不会有帮助。 – Charles

+0

$ mail-> From =“[email protected]”; $ mail-> FromName =“MyFriend.com”; $ mail-> Subject = $ subject; $ mail-> Body = $ body; $ mail-> AddAddress($ recipient,$ recipient_name); $ mail-> AddReplyTo($ replyto,“[email protected]”); –

2

是什么阻止他人使用我的E-mail地址和垃圾邮件的人吗?

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

同样是电子邮件,互联网的明信片。

相关问题