问题描述
我一直在尝试让PEAR :: mail成功地将邮件发送给hotmail用户,而不会被标记为垃圾邮件并结束在垃圾文件夹中,我没有任何问题与yahoo / gmail只有hotmail。
google建议这是Hotmail的常见问题,可能的原因可能包括
- 不正确的反向DNS的主服务器IP
- 缺少SenderId / SPF记录
- 被列入黑名单
已经检查了以上所有我只能想到其他原因 - 格式错误的标题?
测试这个理论我设置通过PEAR :: mail使用的相同地址发送电子邮件,并发送快速测试 - 直接发送到我的收件箱
所以我比较了电子邮件的标题从PEAR :: mail发送到Outlook发送的标题,只有一些区别 - 我只列出了差异,以节省空间(和人们的眼睛)
PEAR ::邮件标题(不在outlook标题)
X -PHP脚本:www.example.com/register.php [users ip address]
Outlook标题(不在PEAR ::邮件标头)
X-Mailer:Microsoft Office Outlook 11
线程索引: Ack6CWSQlgV8s6 + 6SWyifka2NNpB7g ==
X-MimeOLE:由Microsoft制作MimeOLE V6.00.2900.3350
我可以看到的唯一其他差异是
- From:和To:头的顺序相反
- 和收件人部分的
Outlook
收到:来自myhomehostname.com([ip address] helo = simber)
由mywebhostname.com与本地(Exim 4.67)
PEAR :: mail
收到:从apache由mywebhostname.com与本地(Exim 4.67)
这些小di标题中的引用是原因还是我在错误的地方看?我知道这可能是有问题的,因此为什么我选择使用PEAR :: mail类而不是滚动我自己,但现在我真的不知道该去哪里,任何帮助将不胜感激。
更新: 根据changelog的建议,我尝试将MS头添加到PEAR :: mail类中,我已经尝试替换PEAR ::邮件与PHPMailer(与&没有额外的标题) - 他们都结束在垃圾文件夹。
我开始相信它可能不是标题。
更新2: 我应该提到电子邮件只是一个注册确认来验证电子邮件地址用户注册了 - 没有邮件等等,所以我们的音量非常低。
我已经考虑了提供@ hotmail / live电子邮件地址的警告用户,将我们添加到他们的通讯录或检查他们的垃圾文件夹 - 但这似乎对我来说不专业 - 可能是我必须诉诸于此。
为了成为发信人得分认证 - 在考虑低体积时我不太可能证明这一点的成本,
我公司做专业的电子邮件营销活动(通过强大的邮件服务器),我们发送了数千个)向各种地址发送电子邮件。
您所面临的问题是您没有权限。你可能只是一些垃圾邮件发送者试图发送大量的垃圾邮件。
您需要做的是:
- 添加取消订阅链接
-
- 申请Hotmail的Junkmail报告程序(JMRP)和 MAKE SURE 按这是垃圾按钮的人员不会再次发送邮件。这将使您的发件人得分 @ hotmail,并允许您发送邮件。
- 添加SPF和其他反垃圾邮件解决方案。
- 不要每分钟发送超过50封电子邮件到@ hotmail.com(其他域有其他限制)
我们使用PHPMailer来组成我们的消息,根本就没有问题:-)
现在的问题是限制接收邮件服务器。
I have been trying to get PEAR::mail to successfully deliver emails to hotmail users without being flagged as SPAM and ending up in the junk folder, i have no problems with yahoo/gmail only with hotmail.
google suggested that this is a common problem with hotmail and that possible causes can include
- incorrect reverse DNS for main IP of the server
- lack of SenderId/SPF records
- being blacklisted
having checked all of the above i can only think of one other reason - incorrectly formatted headers ?
to test this theory i set up outlook to send email via the same address that PEAR::mail uses and sent a quick test - it delivered straight to my inbox
so i compared the headers from the email sent from PEAR::mail against the headers sent by Outlook and there are only a few differences - i have only listed the differences to save space (and peoples eyes)
PEAR::mail headers (not in outlook headers)
X-PHP-Script: www.example.com/register.php for [users ip address]
Outlook headers (not in PEAR::mail headers)
X-Mailer: Microsoft Office Outlook 11
Thread-Index: Ack6CWSQlgV8s6+6SWyifka2NNpB7g==
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350
the only other differences that i can see are
- the order of the From: and To: headers are reversed
- and in the Received: section of the headers
Outlook
Received: from myhomehostname.com ([ip address] helo=simber)
by mywebhostname.com with local (Exim 4.67)
PEAR::mail
Received: from apache by mywebhostname.com with local (Exim 4.67)
could these small differences in the headers be the cause or am i looking in the wrong place ? i knew this might be problematic hence why i chose to use the PEAR::mail class rather than rolling my own but now i really have no idea where to go with this, any help would be greatly appreciated.
Update: as per changelog's suggestion i have tried adding the MS headers to the PEAR::mail class and i have tried replacing PEAR::mail with PHPMailer (with & without the extra headers) - they all end up in the junk folder.
I am starting to believe that it may not be the headers afterall.
Update 2: i should have mentioned that the emails are just a registration confirmation to validate the email address the user signed up with - no mailshots etc so our volume is extremely low.
I have considered warning users who provide a @hotmail/live email address to add us to their address book or check their junk folder - but this just seems unprofessional to me - it may be that i have to resort to this.
As for becoming Sender Score Certified - its very unlikely that i can justify the cost of this when considering the low volume and purpose of these emails.
My company does professional e-mail marketting campaigns (through strongmail servers) we send thousands of (sollicited) emails a day to all kinds of addresses.
The problem you are facing is that you have no authority. You could just be some spammer trying to send loads of spam.
The thing you need to do is:
- Add unsubscribe links
- Apply for hotmail's Junkmail reporting program (JMRP) and MAKE SURE people that press the 'this is junk' button do not get mailed again. This will up your 'sender score; @ hotmail and allow you messages to get through.
- Add SPF and other antispam solutions.
- Do not send more than 50 e-mails per minute to @hotmail.com (other domains have other limits)
B.t.w we use PHPMailer to compose our messages, no problem at all with that :-)The problem nowadays really is the restricting receiving mailservers.
这篇关于发送邮件与php&逃脱hotmails垃圾文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!