Swift梅勒可以解决被禁止群发邮件的问题吗?

时间:2012-08-20 11:37:58

标签: php swiftmailer massmail

我需要发送超过2000封邮件,我正在使用Swift Mailer库。

我们有自己的服务器,它有SMTP和sendmail传输。我正在使用SMTP:

$transport = Swift_SmtpTransport::newInstance('localhost', 25);

所有邮件都可以发送给少数人,但我担心在发送群发邮件时我们会被禁止。 我真的不知道“被禁止”是什么意思以及它看起来如何,但我担心后果。

那么,是否存在这样的“禁令”以及如何以正确的方式使用Swift Mailer实现群发邮件?

P.S。:我的代码如下:

    // Create the Transport
    $transport = Swift_SmtpTransport::newInstance('localhost', 25);

    // Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);

    // Create a message
    $message = Swift_Message::newInstance($message_theme)
      ->setFrom(array($sender => $name))
      ->setTo($emails)
      ->setBody($message_text,"text/html")
      ;
    try {
        // Send the message
        $result = $mailer->send($message);
    }
    catch(Exception $e) {
        echo "Error: ".$e->getMessage();
    }

2 个答案:

答案 0 :(得分:3)

因为我希望你不要将它用于垃圾邮件!!!

以下是一些可以做的事情:

  • 尝试使用相同的不同电子邮件(更改正文中收件人的姓名)
  • 每3-4秒发送一次电子邮件,而不是100封电子邮件/秒 - 它应该在大约2-3小时内发送2000封电子邮件。

答案 1 :(得分:2)

确实存在黑名单/灰名单,并且您可以实施一些最佳做法以避免这些问题。对于2,000封电子邮件,只要您的标题是合法的,您的正文中没有任何可疑内容,并且您的收件人位于不同的域中,您不应该遇到此问题。但是,正如khomyakoshka所提到的,上面的代码是不正确的,您应该使用循环来发送每封电子邮件。这样可以避免将整个邮件列表暴露给每个用户。

其他一些最佳做法:

1)Swiftmailer提供插件(http://swiftmailer.org/docs/plugins.html),可帮助您发送批量电子邮件。特别值得注意的是Throttler和AntiFlood插件。

2)如果您打算修改邮件内容以定制收件人,请考虑使用Decorator插件(也在插件页面上提到)来执行此任务。

希望这些提示有所帮助。

相关问题