9

我目前正在用 C 语言开发一个电子邮件服务器,最终目标是能够每天向数百万人发送数百万封电子邮件。许多组织都有包含大量用户的电子邮件列表,他们每周/每月/等都会发送电子邮件。

最大的问题:如何防止服务器和电子邮件被标记为垃圾邮件? 到目前为止,我看到的所有防止垃圾邮件的东西都主要处理糟糕的配置,或者至少不需要每小时发送大量电子邮件。我还没有看到任何可以解决每小时数百万封电子邮件的问题。

以下是您可以做出的一些假设:

  • 发送的每封电子邮件都是合法的
  • 所有 SPF 记录和 MX 记录都是准确、最新且有效的
  • 正在使用所有其他常见的垃圾邮件预防策略(反向 DNS 很好,使用 DKIM,返回地址有效,等等等等)
  • 电子邮件是一对一的(即,我不是抄送 1000 个 gmail 地址;我要向每个地址发送一封电子邮件)

这里有一些问题可以让我们朝着正确的方向前进:

  • 我应该限制每个域每分钟发送 X 封电子邮件的电子邮件数量吗?如果是这样,像 GMail 和 MailChimp 这样的网站如何解决这个问题?注意:没有 ISP 限制;这只是接收邮件服务器的问题......
  • 我应该在给定时间限制到域的连接数吗?(例如,如果我同时打开 10/100/1000 个与 gmail 服务器的连接,Google 会认为我是垃圾邮件代理吗?)
  • 为了自动从订阅列表中删除该电子邮件,我应该接受多少次退回(地址上的 5xx 错误)?这会影响服务器的垃圾邮件评级吗?
  • 还有什么我应该或不应该做的吗?

最后说明:请记住这是一个编程问题,而不是图书馆问题——我不想使用别人的服务;我们自己写是有原因的。我正在寻找实用的编程建议。

4

2 回答 2

6

这不是一个编程问题,但这里有:

我强烈建议您加入您当地的邮件运营商邮件列表,以及“Spam-L”邮件列表。阅读档案,看看其他人遇到了什么问题。

简短的回答是目标服务器可以并且确实使用各种方法来防止垃圾邮件。为了获得良好的可交付性,您需要注意很多事情,而且这些事情一直在变化

  • 首先也是最重要的,记住:

    言论自由还包括自由聆听。 没有人必须接受或传输您的邮件。

    独立运营商、企业和个人完全有权以任何理由或无理由拒绝您的邮件。ISP 仅受其与客户的合同和公共运营商法律的限制,这些法律通常赋予他们广泛的自由裁量权来决定什么是垃圾邮件以及如何阻止它。

  • 他们的系统,他们的规则。如果您希望您的消息被传递,您必须与接收 ISP 合作。这可能意味着跳槽,或遵守您认为愚蠢或毫无意义的要求。

  • 确保您没有被 SpamHaus 列出。大多数大小 ISP 都使用 SpamHaus DNSBL 服务。出现在 SpamHaus 的列表之一表明他们认为您的邮件符合他们的列表标准。由于 SpamHaus 的高声誉,大多数 ISP 会根据他们的意见简单地阻止您发送的所有邮件。

  • 确保您处理退订。

  • 确保您处理未送达报告。您可能不想在第一个 NDR 上终止订阅,因为可能会出现间歇性网络或服务器问题,从而导致无法送达,甚至错误地报告地址不正确。但是,如果您在一两个月内收到了几个但没有成功交付,您应该终止订阅。

  • 加入付费信誉服务。这些可能需要张贴保证金,如果您发送垃圾邮件,您可能会失去该保证金。SpamHaus 提供一个。还有其他的。

  • 从像 Return-Path 这样的人那里获得专业建议。您也必须为此付费。

  • 监视器。您必须跳过的篮球一直在变化。确保您了解新出现的可交付性问题。

  • 加入反馈循环。大多数大型 ISP 都提供反馈计划,您可以在其中获得有关用户如何看待您的邮件、他们是否将其报告为垃圾邮件等方面的反馈。

于 2012-06-20T10:14:02.400 回答
3

Ben 有一些很好的实用建议,但对于其他有这个问题的人,这是我在过去一个月中发现的:

电子邮件是关于声誉的。您将永远无法将服务器、IP 和/或域名放在一起,并期望能够发送数百万封电子邮件。

在 Stack Overflow 上,我们有一个评级系统(赞成和反对票)来估计这个人对 SO 社区的价值/信任。但是获得积分需要时间和精力。电子邮件也是如此——您必须开始发送少量人们实际打开并阅读的电子邮件(并且永远不会标记为垃圾邮件),然后每个月慢慢发送越来越多,直到达到数百万的目标数百万封电子邮件。

每次有人“投反对票”——将电子邮件标记为垃圾邮件、标记域、标记 IP 地址、删除电子邮件而不阅读它等等——你的声誉就会受到打击。如果您想在人们中获得良好的声誉,您需要不断地监控并为您的声誉付出努力和最佳实践。

因此,从小处着手,以稳定和稳定的方式扩展,并时刻注意滥用、误用、好的和坏的反馈,或任何可能影响您声誉的事情。

这不仅可行,而且非常实用;你只需要给它时间和精力。

于 2012-07-22T21:15:34.790 回答