如何在两台或更多台服务器之间分发电子邮件

我们通过在线应用提供电子邮件营销服务。 我们有大约30个客户。 每个人都有它自己的邮件列表(每个邮件5k到20k)。

我们真正想要的是在2个或更多的服务器之间分发电子邮件。 我想知道什么样的解决schemeMailChimp,Constant Contact用来提供一个很好的服务? 使用多台服务器? 很多IP?

我们的垃圾邮件政策会暂停任何获得10%退款的用户/客户。

我们在The Planet有一台服务器

Dual Xeon Quad Core, com 12 GB of RAM Processor #1 Vendor: GenuineIntel Processor #1 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #1 speed: 1995.080 MHz Processor #1 cache size: 6144 KB Processor #2 Vendor: GenuineIntel Processor #2 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #2 speed: 1995.080 MHz Processor #2 cache size: 6144 KB Processor #3 Vendor: GenuineIntel Processor #3 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #3 speed: 1995.080 MHz Processor #3 cache size: 6144 KB Processor #4 Vendor: GenuineIntel Processor #4 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #4 speed: 1995.080 MHz Processor #4 cache size: 6144 KB Processor #5 Vendor: GenuineIntel Processor #5 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #5 speed: 1995.080 MHz Processor #5 cache size: 6144 KB Processor #6 Vendor: GenuineIntel Processor #6 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #6 speed: 1995.080 MHz Processor #6 cache size: 6144 KB Processor #7 Vendor: GenuineIntel Processor #7 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #7 speed: 1995.080 MHz Processor #7 cache size: 6144 KB Processor #8 Vendor: GenuineIntel Processor #8 Name: Intel(R) Xeon(R) CPU E5405 @ 2.00GHz Processor #8 speed: 1995.080 MHz Processor #8 cache size: 6144 KB 

当我们的所有客户同时发送活动(发生在纪念date之前)时,由于更高的发货stream量,我们收到太多拒绝的电子邮件。 我们使用45个IP来轮换我们的邮件传出IP。 并控制/限制从每个IP到主机的stream量(例如:@hotmail,@ gmail)。

我们的方法是

  1. 我们的应用程序在下午2点向@ hotmail.com发送300封电子邮件
  2. 应用程序块传递到@ hotmail.com,并开始传递给不同的主机,直到它提高主机的限制
  3. 应用程序每10分钟旋转邮件服务器的外发IP(使用45个不同的IP)

我担心,随着业务的增长,我们得到更多的客户,交付stream量变得更高,这种方法由于被目的地主机拒绝而失败。

通常情况下,消息队列用于这样的事情。 将电子邮件发送到特定收件人或收件人组的命令在生产者上排队,然后任意数量的使用者可以在队列中处理下一个命令。

如何实施有很多select,但是这取决于你的具体环境。

也就是说,你发送的邮件量对于单个服务器来说并不是那么高。

这到底是什么问题?

你的数量还不够高,不足以certificate分裂 – 我的意思是,即使你所有的30个客户同时发送了20.000封电子邮件,那也不算什么 – 足以让一个强大的服务器处理(我并不是说超级强大 – 只是得到一些光盘,并形成一个邮筒的RAID)。

你可能会去与多个发送服务器排队。 所有邮件服务器的IP地址块。 要么使用像MS Exchange这样的发送(交换在自动维护服务器场方面非常出色),要么使用某种机制在服务器之间对电子邮件进行群集(这样,到同一个域的那些服务器就会在同一台服务器上 – 只是因为服务器可以发送一个TCP连接中的多个电子邮件)。

多ISP的听起来像一个没有问题。 别忘了 – 我们讨论的是一个便宜的家庭ADSL线路的stream量太多。 一旦您获得了商业评级,您的服务器就会进入适当的数据中心。 正常运行时间是非常高的,然后 – 适当的一个(carefull,一些看起来很便宜)。 即使两三年的时间倒下来,你也必须真正做大或集中才行。 即使如此,事情可能会变得非常糟糕(如:维基百科最近也停滞了一段时间)。

主要的问题是你需要build立在规格上的专用服务器来处理邮件stream。 networkingstream量不是那么多。 但是您的光盘上的邮件缓冲区将会很难恢复。 如果真的发生了60万封电子邮件,那么一张4-8张高速磁盘的RAID 10(或者SSD的RAID 5)听起来就是最好的select。 像所有数据库交易系统一样,你的限制将是IO。 我会用非标准节点大小(64k)的自定义格式化文件系统,允许每个电子邮件读/写节点几乎每个保证。 请注意,这是基于SPIKE的使用 – 如果电子邮件不能立即全部发送,你可以逃脱less得多。

下一步将是一个服务器集群。