我正在考虑如何处理从我的网络应用程序发送大量电子邮件,以及是否有任何最佳做法。 StackOverflow已将此标记为“主观”,这可能在一定程度上,但我需要知道实现此系统的最成功方式,或者是否存在任何标准化方法。
在我的webapp中,有些用户是1到10,000个用户的组长。此用户必须能够通过我的系统向所有这些用户发送电子邮件。因此,我的系统负责为每个组头发送最多10,000封电子邮件给个人用户。
据我所知,GMail没有向个人发送邮件的速率限制(尽管最多有500个收件人)。
目前,我目前的设置是:
随着用户群的增长,这种设置可能还不够。我的问题是:
谢谢!
答案 0 :(得分:10)
我会在Google应用引擎(python)中写这个,因为:
如果我在PHP中实现它,我会
这是您将消息发送给用户的页面。在这个页面中,您将通过编写以下内容的代码向beanstalkd发送消息:
// register Pheanstalk class loader
require_once('pheanstalk_init.php');
$pheanstalk = new Pheanstalk('127.0.0.1');
$message = ""; // This would contain your message
$pheanstalk->put(json_encode($message);
您必须使用put命令将消息放入消息队列
代码看起来像这样:
// register Pheanstalk class loader
require_once('pheanstalk_init.php');
$pheanstalk = new Pheanstalk('127.0.0.1');
while(true) {
$job = $pheanstalk->reserve();
$email = json_decode($job->getData());
// Sent email using PHP mailer.
$pheanstalk->delete($job);
}
就像我说的那样,PHP和谷歌应用程序引擎都可以,但我会选择应用程序引擎,因为它更容易实现。
答案 1 :(得分:6)
如果电子邮件数量为每天10.000的“高”,我就不会依赖GMail(或任何其他)SMTP。并不是他们无法处理它,显然他们可以处理更多。但他们可能不想这样做。
拥有本地SMTP服务器是IMO的最佳选择:
答案 2 :(得分:0)
Gmail和Google Apps每天限制您大约500封电子邮件。我不确定它是如何与500收件人最大结合,但如果你想发送10 000封电子邮件,你可能想要找到另一个邮件服务器。我个人使用本地服务器或ISP或数据中心的SMTP。
如果您要发送那么多电子邮件,我建议您使用该队列,这样用户就不会坐在那里等待发送电子邮件。
答案 3 :(得分:0)
请务必小心,您的域名不会被列入垃圾邮件域列入黑名单。如果是这样,您可以预期大多数电子邮件都会被阻止,支持,销售等。这可能会非常昂贵。
您可能希望使用AWeber之类的服务。他们不仅设置了处理这些数量的电子邮件,而且可能会为您提供比您自己实施的更多指标。
答案 4 :(得分:0)
我不确定它是否会在任何地方发布,但根据我的经验,我可以告诉您,如果您一次开始发送数百封邮件,Gmail会冻结您的帐户十五分钟左右。上周发生在我身上。我认为你应该托管自己的SMTP服务器。使用mail()函数通常会将您的邮件放在某人的垃圾邮件文件夹中。
答案 5 :(得分:0)
只需在本地计算机或同一LAN上的计算机上安装Postfix,即可获得最大的访问速度。确保从外面很好地固定,并从内部快速进入。
然后编写PHP脚本代码,直接将电子邮件注入Postfix队列。这将大大提高邮件传递的处理速度。