当用户在我的网站上注册时,网站会向用户发送电子邮件确认链接。
主题:请确认您的电子邮件地址
身体:
请在浏览器中打开此链接以确认您的电子邮件地址: http://www.postjobfree.com/a/c301718062444f96ba0e358ea833c9b3 此链接将于以下日期过期:2012 年 6 月 9 日晚上 8:04:07(美国东部标准时间)。
如果我的网站将该电子邮件发送到 GMaill(@gmail.com 或由 Google Apps 处理的其他域),并且该用户从未发送电子邮件 - 那么 GMail 不仅会将该电子邮件放入垃圾邮件文件夹,还会添加显眼的红色警告:
请小心处理此消息。类似的消息曾被用来窃取人们的个人信息。除非您信任发件人,否则不要点击链接或回复个人信息。了解详情
这个警告确实吓坏了我的很多用户,所以他们不敢打开那个链接并确认他们的电子邮件。
我能做什么呢?
理想情况下,我希望该邮件最终进入用户的收件箱,而不是垃圾邮件文件夹。但至少我该如何阻止那条可怕的邮件呢?
我的邮件服务器的 IP 地址不在黑名单中: http://www.mxtoolbox.com/SuperTool.aspx?action=blacklist%3a208.43.198.72
我使用 SPF 和 DKIM 签名。
以下是最终被放入垃圾邮件文件夹且带有令人恐惧的红色消息的电子邮件。
送到了(送去了:[电子邮件保护] 已接收:10.112.84.98,SMTP ID 为 x2csp36568lby; 2012 年 6 月 8 日星期五 17:04:15 -0700 (太平洋夏令时) 已接收:10.60.25.6,SMTP ID 为 y6mr9110318oef.42.1339200255375; 2012 年 6 月 8 日星期五 17:04:15 -0700 (太平洋夏令时) 返回路径: 已收到:来自 smtp.postjobfree.com (smtp.postjobfree.com.[208.43.198.72]) 由 mx.google.com 发送,ESMTP id 为 v8si6058193oev.44.2012.06.08.17.04.14; 2012 年 6 月 8 日星期五 17:04:15 -0700 (太平洋夏令时) 已接收-SPF:通过(google.com:域名[电子邮件保护]指定 208.43.198.72 为允许的发送方)client-ip=208.43.198.72; 身份验证结果:mx.google.com;spf=pass(google.com:域名[电子邮件保护]指定 208.43.198.72 为允许的发件人)[电子邮件保护];dkim=通过[电子邮件保护] 域密钥签名:a=rsa-sha1;c=nofws;q=dns; d=postjobfree.com; s=postjobfree.com; h=收到:消息id:mime版本:来自:至:日期:主题:内容类型; tcp/3hP1WWViWB1cdAzMFPjyi/aUKXQbuSTVpEO7qr8x3WdMFhJCqZciA69S0HB4 Koatk2cQQ3fOilr4ledCgZYemLSJgwa/ZRhObnqgPHAglkBy8/RAwkrwaE0GjLKup 0XI6G2wPlh+ReR+inkMwhCPHFInmvrh4evlBx/VlA= DKIM 签名:v=1;a=rsa-sha256;c=宽松/宽松; d=postjobfree.com; s=postjobfree.com; h=内容类型:主题:日期:至:发件人:mime 版本:消息 ID; bh=N59EIgRECIlAnd41LY4HY/OFI+v1p7t5M9yP+3FsKXY=; b=J3/BdZmpjzP4I6GA4ntmi4REu5PpOcmyzEL+6i7y7LaTR8tuc2h7fdW4HaMPlB7za Lj4NJPed61ErumO66eG4urd1UfyaRDtszWeuIbcIUqzwYpnMZ8ytaj8DPcWPE3JYj oKhcYyiVbgiFjLujib3/2k2PqDIrNutRH9Ln7puz4= 已收到:来自 sv3035(sv3035 [208.43.198.72])通过 smtp.postjobfree.com 使用 SMTP 发送; 2012 年 6 月 8 日星期五 20:04:07 -0400 消息ID: MIME 版本:1.0 发件人:“PostJobFree 通知” 到:[电子邮件保护] 日期:2012 年 6 月 8 日 20:04:07 -0400 主题:请确认您的电子邮件地址 内容类型:multipart/alternative; 边界=--boundary_107_ffa6a9ea-01dc-40f5-a50c-4c3b3d113f08 ----边界_107_ffa6a9ea-01dc-40f5-a50c-4c3b3d113f08 内容类型:text/plain;字符集=us-ascii 内容传输编码:quoted-printable 请在浏览器中打开此链接以确认您的电子邮件地址= ss:=0D=0Ahttp://www.postjobfree.com/a/c301718062444f96ba0e358ea8= 33c9b3 =0D=0A此链接将于 2012 年 6 月 9 日晚上 8:04:07(美国东部标准时间)过期。=0D=0A ----边界_107_ffa6a9ea-01dc-40f5-a50c-4c3b3d113f08 内容类型:text/html;字符集=utf-8 内容传输编码:base64 PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij48L2hlYWQ+DQo8Ym9keT48ZGl2 Pg0KUGxlYXNlIG9wZW4gdGhpcyBsaW5rIGluIHlvdXIgYnJvd3NlciB0byBjb25m aXJtIHlvdXIgZW1haWwgYWRkcmVzczo8YnIgLz48YSBocmVmPSJodHRwOi8vd3d3 LnBvc3Rqb2JmcmVlLmNvbS9hL2MzMDE3MTgwNjI0NDRmOTZiYTBlMzU4ZWE4MzNj OWIzIj5odHRwOi8vd3d3LnBvc3Rqb2JmcmVlLmNvbS9hL2MzMDE3MTgwNjI0NDRm OTZiYTBlMzU4ZWE4MzNjOWIzPC9hPjxiciAvPlRoaXMgbGluayB3aWxsIGV4cGly ZSBvbjogNi85LzIwMTIgODowNDowNyBQTSBFU1QuPGJyIC8+DQo8L2Rpdj48L2Jv ZHk+PC9odG1sPg== ----boundary_107_ffa6a9ea-01dc-40f5-a50c-4c3b3d113f08--
更新 1:这是编码为 base64 的 HTML:
<html><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"></head>
<body><div>
Please open this link in your browser to confirm your email address:<br /><a href="http://www.postjobfree.com/a/c301718062444f96ba0e358ea833c9b3">http://www.postjobfree.com/a/c301718062444f96ba0e358ea833c9b3</a><br />This link will expire on: 6/9/2012 8:04:07 PM EST.<br />
</div></body></html>
更新 2:HTML 采用 base64 编码的原因是我使用 C# MailMessage 到 AlternateView 添加纯文本和 HTML 版本的电子邮件:
https://stackoverflow.com/questions/44777/sending-a-mail-as-both-html-and-plain-text-in-net
http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.alternateviews.aspx
更新 3:将 base64 编码(MailMessage C# 类中的默认编码)更改为 SevenBit 编码没有帮助。至少在开发环境中,当我发送包含“localhost”的链接时没有帮助。以下是被拒绝为网络钓鱼嫌疑的电子邮件:
Delivered-To: [email protected]
Received: by 10.112.84.98 with SMTP id x2csp72117lby;
Sat, 9 Jun 2012 15:16:37 -0700 (PDT)
Received: by 10.60.28.37 with SMTP id y5mr11589839oeg.35.1339280196971;
Sat, 09 Jun 2012 15:16:36 -0700 (PDT)
Return-Path: <[email protected]>
Received: from smtp.postjobfree.com (smtp.postjobfree.com. [208.43.198.72])
by mx.google.com with ESMTP id qk9si7300498obc.155.2012.06.09.15.16.36;
Sat, 09 Jun 2012 15:16:36 -0700 (PDT)
Received-SPF: pass (google.com: domain of [email protected] designates 208.43.198.72 as permitted sender) client-ip=208.43.198.72;
Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates 208.43.198.72 as permitted sender) [email protected]; dkim=pass [email protected]
DomainKey-Signature: a=rsa-sha1; c=nofws; q=dns;
d=postjobfree.com; s=postjobfree.com;
h= received:message-id:mime-version:from:to:date:subject:content-type;
b=MT47O2t6ibFcQKArmtx1vWeppQk1noTpazu2I8cQtT9k8aBgSgG0eCTfgMIBm4Hhw
ienz58tHV8t2IbftHPY2NdD8uaWMm7vsPmZC4MYECfHeMkgz/H5/SqpPIcbodnGtp
0kvyijSuB3ZRf81+mZUid9zzIcGVAZy+UdTlBQ9zA=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=postjobfree.com; s=postjobfree.com;
h=content-type:subject:date:to:from:mime-version:message-id;
bh=iEOndDXrxsEIf7PWPR7Mg8nS7FdoL0hyooPO8HHf7ms=;
b=sPF/JTndeASFWWRuFh+gGLmLOwPApdN7fQJm0Uz39EtY6C+y0dXqQmYlLOryZszgO
qyKBzOLCMMdrSdmVERS+ui7gegparxw3TwTXa37YHcHO8Zwr/0lfjE0ho9ofITfqV
V59H1v0mVLdBAwvVTN6Rl0qNUwmZRc9jHkQOPDtZE=
Received: from quad (c-67-191-103-186.hsd1.fl.comcast.net [67.191.103.186]) by smtp.postjobfree.com with SMTP;
Sat, 9 Jun 2012 18:16:29 -0400
Message-ID: <20120609221620c0254cdabdf44680bb2217bfab121481@smtp.postjobfree.com>
MIME-Version: 1.0
From: "PostJobFree Notification"
<[email protected]>
To: [email protected]
Date: 9 Jun 2012 18:16:24 -0400
Subject: Please confirm your email address
Content-Type: multipart/alternative;
boundary=--boundary_0_421e5237-be5a-40a2-ba77-32fcb2856bdf
----boundary_0_421e5237-be5a-40a2-ba77-32fcb2856bdf
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable
Please open this link in your browser to confirm your email addre=
ss: =0D=0Ahttp://localhost/PostJobFree/a/054a67e4284a4976bc44e864=
a85f767a =0D=0AThis link will expire on: 6/10/2012 6:16:13 PM EST=
. =0D=0A
----boundary_0_421e5237-be5a-40a2-ba77-32fcb2856bdf
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<html><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"></head>
<body><div>
Please open this link in your browser to confirm your email address:<br /><a href="http://localhost/PostJobFree/a/054a67e4284a4976bc44e864a85f767a">http://localhost/PostJobFree/a/054a67e4284a4976bc44e864a85f767a</a><br />This link will expire on: 6/10/2012 6:16:13 PM EST.<br />
</div></body></html>
----boundary_0_421e5237-be5a-40a2-ba77-32fcb2856bdf--
更新 4:在我们重新设计电子邮件格式,使其类似于 MailChimp 设计的 CopyHacker Letter(请参阅下面的答案)之后,它显著提高了电子邮件的传递率(+ 提高了可读性)。我猜传递率的提高是因为我们现在避免使用一些可能成为垃圾邮件的词语,例如“链接”。
答案1
Mailchimp 有一篇关于如何避免垃圾邮件过滤器
更新:好的,看到我因为提供此链接而受到批评(公平地说,它的内容可能无法解决您的问题),我已经添加了更具体的有关您发送的内容。
- 我怀疑是您使用的文本。“请点击链接确认您的电子邮件地址”——我认为您应该将文本替换为“订阅此列表:”。甚至可以简单地将“请确认您的电子邮件”更改为“请确认您的订阅”——以表明您并未试图获取任何个人信息。
- 我不知道您为什么要将 HTML 添加为附件 - 如果您从电子邮件客户端向客户发送普通电子邮件,您不会将其附加为 HTML,而只是将其作为普通 HTML(或文本)发送 - 那么当您试图不像垃圾邮件发送者时,为什么要做不同的事情呢?
- 考虑到您的电子邮件很短,您可能只需将其作为文本发送 - 事实上,您是将其作为文本和 base64 编码发送 - 要么将消息作为 html 发送,要么作为文本发送,您不需要两者。
- 当尝试向 Gmail 发送电子邮件时,他们会删除所有 HTML 标头(我发现 Gmail 在接受正确格式的 HTML 电子邮件方面最麻烦)
- 如果你仍然遇到问题,我建议你开始通过 MailChimp 之类的工具发送电子邮件 - 它们最终会看起来更漂亮,你的客户也会更满意
- 你被指控发送的是网络钓鱼邮件。以下是我的垃圾邮件过滤器中的一个例子:
尊敬的在线服务客户,
访问您的帐户已成功登录。
为了确保您的安全,我们现已阻止访问您的帐户。您现在需要恢复您的安全详细信息。在完成此操作之前,您将无法访问您的帐户。
要恢复请点击下面的链接来恢复您的帐户访问权限。
恢复您的帐户访问权限(在电子邮件中,这是一个指向可疑网站的链接)
© Shop Direct Limited。保留所有权利。
以下是一封友好的“请确认”电子邮件的示例复制黑客:
主题:CopyHackers 时事通讯:请确认订阅
身体:
答案2
您的电子邮件在我看来是垃圾邮件。即使我已经注册,我也可能不会打开您的链接。您的邮件需要更多详细信息。
- 如果我没有注册该怎么办?
- 我要向谁确认我的地址以及为什么?
- 我该如何联系您以了解更多详细信息?
- 您的网站是什么?
我没有解码你的 base64 编码数据(为什么要编码你的 html),但它与你的文本版本相匹配吗?
编辑:为什么 html 是附件?它可以是第二种格式。两部分都不需要花哨的编码。尝试使用以下标题的两个部分:
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
尝试检查您收到的类似消息的来源。
垃圾邮件发送者不担心额外的击键,但会包含非垃圾邮件文本,以尽量避免被视为垃圾邮件。
我希望 Google 和其他批量邮件发送者能够解析结构,看看它是否标准。Outlook、Thuderbird 等电子邮件客户端往往具有良好的标准结构。垃圾邮件通常是使用生成结构不标准的劣质代码的工具创建的。