SendGrid 电子邮件作为垃圾邮件被拒绝
Posted
技术标签:
【中文标题】SendGrid 电子邮件作为垃圾邮件被拒绝【英文标题】:SendGrid Emails Getting Rejected as Spam 【发布时间】:2015-10-01 06:39:29 【问题描述】:我正在为我的应用程序制作用户管理系统,我需要向用户发送一封“忘记密码”的电子邮件,其中包含允许他们重置帐户密码的令牌。我通过 Azure 注册了 SendGrid(每月免费获得 25,000 封电子邮件,这听起来很划算)并编写了一些代码来使用它,但在对我的程序进行了一些测试后,我沮丧地发现我的电子邮件实际上通过了。
进入SG控制面板后,我发现我发送的6封测试邮件中有4封通过了,其他的都被拒绝为垃圾邮件。我向 mail-tester.com 发送了一封电子邮件,看看我的垃圾邮件分数是多少,它给了我 4.3/10。
有问题的电子邮件是一个带有密码重置链接的句子,没有任何图像或其他元素。我只发送了这 6 封电子邮件,所以我的电子邮件数量绝对不是问题。不过,我对为什么我的邮件被标记为垃圾邮件感到非常困惑。
在不费力地进行复杂的身份验证设置的情况下,我可以对我的系统进行任何基本的更改以使其能够传递给用户吗?
【问题讨论】:
【参考方案1】:在这种情况下,很可能是因为您正在发送这样一条短消息,其中包含来自非白标电子邮件地址的“重置密码”链接(您发送的电子邮件地址无法根据实际域进行验证),并且链接也可能是不同的 URL。它可能会被视为潜在的网络钓鱼电子邮件。
您可以通过 SendGrid 仪表板通过 white labeling your domain and email links 纠正此问题,这很容易做到,并且应该会提高您的可交付性。
还可以查看 SendGrid 支持团队的 this article 关于白标的信息。
【讨论】:
我遇到了最奇怪的情况,我在 AWS WorkMail/SES 中设置了自动电子邮件账户,并且还设置了 Sendgrid。从 sendgrid lambda 脚本触发电子邮件,3 个项目在没有白标签的情况下完美运行。即使在设置 DKIM 和白标之后,1 个项目也总是会进入垃圾邮件。所以对于任何阅读的人来说——白标不是一个防弹解决方案【参考方案2】:一个 2015 年的问题,遗憾的是,随着 SendGrid 使用量的增加,今天它仍然具有相关性。
我的组织已阻止所有 SendGrid 邮件,除了那些使用固定 IP 地址和可解析公共 DNS 名称(例如 sendgrid1.sampledomain.tld)的付费层邮件,然后我们将其列入白名单。
现在有太多来自 SendGrid 的域假冒、网络钓鱼和其他垃圾邮件,我们无法允许来自它们的所有邮件 - 在 7 天内大约有 10,000 封邮件,这对于手动报告 SendGrids 滥用行为来说太多了部门。
所以我的回答是,如果您希望邮件更有可能完好无损地到达目的地,那么切换到 SendGrid 的付费层是更好的选择。
【讨论】:
这似乎是 SendGrid 的常见问题。他们的许多服务器都在 SpamHaus 的阻止列表中(它们是 Outlook 的垃圾邮件过滤服务,可能还有其他服务器)。见spamhaus.org/sbl/listings/sendgrid.com。似乎有很多垃圾邮件发送者利用他们的免费套餐,因此导致了这个持续存在的问题。如果不支付每月至少 90 美元购买专用 IP,我什至无法测试他们的平台,因此我不得不四处寻找不提供免费套餐的替代方案。 不是每个网站都可以为几封电子邮件支付 100 美元/月的费用...阻止所有 Sendgrid 小型计划对那些经营小型企业并看到合法电子邮件未送达的人是不尊重的。至少您可以将它们存储在垃圾邮件文件夹中,并让用户决定该发件人是否是垃圾邮件(例如,像 Gmail 一样,带有一个大的“报告非垃圾邮件”按钮)。您仅根据花费来检测垃圾邮件的策略是糟糕且不道德的。【参考方案3】:我只收到来自 Sendgrid 的垃圾邮件。 直接转到垃圾邮件文件夹,并尝试在任何我可以报告的地方报告 Sendgrid。也许他们被大多数邮件服务器阻止,并让他们考虑“托管”所有这些垃圾邮件发送者的政策。
【讨论】:
我同意。 SendGrid 通过 Spamcop 故意丢弃合法的垃圾邮件/滥用报告无济于事。他们只是在为自己制造糟糕的名声。【参考方案4】:在我的情况下,我的电子邮件被标记为垃圾邮件,因为锚标签与实际调用的 href 不同。 这是因为 sendgrid 的“点击跟踪”设置。
所以,如果你有类似的东西
<a href="http://yourdomain.com">yourdomain.com</a>
sendgrid 可能会替换 href,你最终会得到类似:
<a href="http://sendgrid.net/....<very-long-url>.......">yourdomain.com</a>
被调用的 sendgrid 页面会跟踪点击,然后将用户重定向到您最初设置的 url。但这有时会导致您的电子邮件被标记为垃圾邮件。
尝试将 sendgrid 仪表板中的“点击跟踪”设置为关闭:设置 |跟踪 |点击跟踪。
详情在这里:https://sendgrid.com/docs/ui/account-and-settings/tracking/
【讨论】:
【参考方案5】:始终从设置域身份验证开始,正如 @MartynDavies 所说,以前称为域白标签。在 UI 中的设置 -> 发件人身份验证下找到。应该是这样的:
https://sendgrid.com/docs/ui/account-and-settings/how-to-set-up-domain-authentication/
要确定问题,请查看活动并选择查看延迟、丢弃、退回、阻止和垃圾邮件报告。
https://app.sendgrid.com/email_activity
在 Suppressions 下,您可以查看 Blocks 和 Bounces 的详细信息:
https://app.sendgrid.com/suppressions/blocks
https://app.sendgrid.com/suppressions/bounces
在那里你可以看到如下错误:
550 5.7.1 SPF check failed. em1234.mydomain.com does not declare 11.222.33.44 as a valid sender
如果显示为 Verified
,但您看到此类错误,请联系 SendGrid 支持。
一个有效的方法是通过 Azure 门户从免费计划升级到 Essentials 或 Bronze。这使得许多标记为垃圾邮件的电子邮件通过了。
【讨论】:
以上是关于SendGrid 电子邮件作为垃圾邮件被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
如何配置Node email-template使用SendGrid作为传输方式
Sendgrid - 活动显示已发送电子邮件但未收到电子邮件