Ala*_*lan 51 php email bulk massmail
我目前正在写一个音乐博客.管理员每2-3天发布一篇新文章.管理员发布文章后,将立即向大约5000个订阅者发送大量电子邮件.
实施群发邮件功能的最佳方法是什么?
以下功能是否有效?
function massmail()
{
$content = '...';
foreach ($recipients as $r) {
$_content = $content . '<img src="http://xxx/trackOpenRate.php?id='.$r.'">';
mail($r, 'subject', $_content);
}
}
Run Code Online (Sandbox Code Playgroud)
另一个问题:如果所有5000个订阅者都使用Yahoo Mail,雅虎会将其视为DDOS攻击并阻止我的SMTP服务器的IP地址吗?
Ext*_*kun 48
首先,使用PHP附带的mail()函数不是最佳解决方案.它很容易被标记为垃圾邮件,您需要设置标题以确保正确发送HTML电子邮件.至于代码片段是否会起作用,它会,但我怀疑你会在其中正确获取HTML代码而不指定额外的标题
我建议你看看SwiftMailer,它支持HTML,支持不同的mime类型和SMTP身份验证(不太可能将你的邮件标记为垃圾邮件).
bum*_*box 31
我会将所有电子邮件插入数据库(有点像队列),然后像在代码中一样处理它们(如果你想使用swiftmailer或phpmailer等,你也可以这样做.)
发送每封邮件后,更新数据库以记录发送的日期/时间.
首先将它们放入数据库中
请注意,如何自动发送退回的电子邮件或无效的电子邮件,以便他们可以自动从列表中删除.
如果你发送了很多电子邮件,你肯定会获得一些反弹.
Mic*_*ngh 17
这是建议,而不是答案:使用专用邮件列表软件你会好得多. mailman是一个常用的例子,但像mlmmj这样简单的东西就足够了.发送大量邮件实际上比实际看起来更困难.您不仅需要发送邮件,还必须跟踪"死"地址,以避免您的邮件,或者更糟糕的是,您的邮件服务器被标记为垃圾邮件.出于同样的原因,你必须处理取消订阅的人.
你可以自己实现这些东西,但特别是弹跳处理是困难和无益的工作.使用邮件列表管理器可以使事情变得更容易.
至于如何让你的邮件适合雅虎,这完全是另一回事.尽管存在缺陷,但它们似乎在SPF和DomainKey中都有很大的优势.您可能必须实现它们,这将需要您的邮件服务器管理员的合作.
uso*_*ban 12
您可以考虑将CRON用于此类操作.一次发送大量邮件肯定不好,它可能被检测为垃圾邮件,ddos,崩溃你的服务器等.
所以CRON可能是一个很好的解决方案,一次发送100封邮件,然后等待几分钟,接下来的100封等等.