我想要获得有关如何确保电子邮件服务器的安全的建议,以便每天处理大量外发电子邮件。希望获得硬件和软件方面的建议以及成本估算。希望系统能够随着数量增长而增长。从每天 30,000 封电子邮件开始,然后从那里开始增长。希望确保我的商业计划能够负担得起。
答案1
我们在四台非常老旧的服务器上(大概有四年历史)处理了十倍的数据,这些服务器运行着 Ubuntu Linux、exim 和自定义 Java 交付和 POP3 程序。您可能可以花大约 100-150 美元购买专用服务器选项,该选项能够提供您想要的性能。这需要您具备一些配置 Linux 的知识,或者聘请具备这些知识的人。
答案2
这很大程度上取决于你到底要用它做什么:
- 这些电子邮件有多大(与可用带宽直接相关,不用担心,即使是运行缓慢的 PC 也能够填满 100mbit 的管道)
- 您是否需要大量的文本处理来“撰写”这些电子邮件,如果它查询数据库中的所有字段,则数据库连接很可能成为瓶颈。
我曾经为 Windows 编写了一个简单的 Python 程序,它直接将消息发送到特定电子邮件地址的 MX 服务器。它在我的 Dell D820 笔记本电脑上的 VMWare 实例上运行,该笔记本装有 win2003,内存为 512MB,每秒发送大约 3 封邮件,尽管这是单线程的,而且大部分邮件都在等待远程服务器。我估计我可以同时运行大约 20 个这样的程序,而不会出现任何内存/CPU 问题。
因此每秒大约有 60 封邮件,每小时超过 200,000 封。
答案3
你说每天 30,000 个,但更有趣的问题是每秒或每分钟有多少个?你的地址有多好?
一天内均匀分布 30,000 封电子邮件,每 2.88 秒发送一封,对于任何可以用作服务器的旧系统来说,这几乎不算什么;即使您全部使用单线程执行。分成两批,预计在半小时内发送,您说的是每秒略多于 8 封电子邮件;对于机柜中的旧 386 来说可能有点难以管理,但在过去 5 年内购买的几乎所有机器上,只要有合适的软件,就可以做到。预计在 1 分钟内发送 30,000 封邮件中的 99%,每秒发送 500 封;这有点难做到。
最重要的规格是内存。电子邮件传递不需要实际的计算工作量,主要的事情是您需要与不同的服务器建立大量开放的传出连接,而实现这一点的方法是使用多个进程或线程,这意味着需要更多的 RAM。
如果某个地址出现暂时错误,您是否想将其保存到队列中并稍后重试?有些人设置成这是他们收到电子邮件的唯一方式。
确实,对于这些数量来说,困难的部分是处理退回、取消订阅和垃圾邮件投诉。(如果您不能正确处理这些问题,您将在各种数据库中被标记为垃圾邮件发送者,并且您的电子邮件将无法通过)
那么,你的商业计划是发送垃圾邮件吗?那 30,000 个电子邮件地址是从哪里来的?
答案4
更直接地回答一些技术方面的问题:
- 使用 Postfix 或 Exim 等邮件服务器设置 Linux/Unix 系统
- 让您的应用程序将所有邮件发送到此箱(不要尝试自己进行排队)。
- 您可能需要进行主机伪装(让所有电子邮件看起来都来自该域)
- 将您的回复(或来自标题)设置为指向您的真实邮件服务器(以便您可以看到退回消息和其他问题)。
硬件的成本取决于您要将其放置在哪里(在您的办公室、在 Colo、在托管公司租用 VPS)。