PHP发送群发邮件:每人一封还是每人一封?

PHP发送群发邮件:每人一封还是每人一封?,php,one-to-many,one-to-one,mass-emails,Php,One To Many,One To One,Mass Emails,使用PHP发送群发邮件时,最好向每个订户发送一封电子邮件(在所有电子邮件地址中运行for循环),还是只在逗号分隔的列表中以密件抄送方式添加all,从而只发送一封电子邮件 谢谢。在SMTP服务器上,密件抄送字段中的地址数很可能受到限制(以避免垃圾邮件)。我会选择安全路线,给每个订户发一封电子邮件。这还允许您在需要时为每个订阅者自定义电子邮件 还要注意,mail()可能不是发送批量邮件的最佳方式(因为每次调用它时,它都会打开到SMTP服务器的新连接)。您可能需要了解。最佳做法是为每个收件人发送电子邮

使用PHP发送群发邮件时,最好向每个订户发送一封电子邮件(在所有电子邮件地址中运行for循环),还是只在逗号分隔的列表中以密件抄送方式添加all,从而只发送一封电子邮件


谢谢。

在SMTP服务器上,密件抄送字段中的地址数很可能受到限制(以避免垃圾邮件)。我会选择安全路线,给每个订户发一封电子邮件。这还允许您在需要时为每个订阅者自定义电子邮件


还要注意,mail()可能不是发送批量邮件的最佳方式(因为每次调用它时,它都会打开到SMTP服务器的新连接)。您可能需要了解。

最佳做法是为每个收件人发送电子邮件

如果它是一个linux邮件服务器,它可以处理大量的吞吐量,所以除非它是一个垃圾服务器,否则卷不应该是一个问题


如果它是一个共享的Web服务器,你的主机可能会不高兴——如果是这样的话,我会把它拆分成Chunck并发送出去。如果是专用的,则按您的意愿执行:)

如果某个密件抄送收件人的发送过程因某种原因失败(例如,可能导致无法解析域),则整个操作将被取消(在99%的情况下,这是不必要的行为)


如果您在PHP循环中发送电子邮件,即使其中一封电子邮件无法发送,也会发送其他电子邮件。

因为其他人说每个收件人发送一封邮件更合适

如果你想要一个图书馆为你做这件肮脏的工作,试试SwiftMailer吧

以下是直接来自文档的示例:

require_once 'lib/swift_required.php';

//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('Wonderful Subject')
  ->setFrom(array('john@doe.com' => 'John Doe'))
  ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
  ->setBody('Here is the message itself')
  ;

//Send the message
$numSent = $mailer->batchSend($message);

printf("Sent %d messages\n", $numSent);

/* Note that often that only the boolean equivalent of the
   return value is of concern (zero indicates FALSE)

if ($mailer->batchSend($message))
{
  echo "Sent\n";
}
else
{
  echo "Failed\n";
}

*/

它还有一个很好的防流血插件:

我从未体验过任何邮件服务器的这种行为,你能提供一个信息来源吗?@Victor Welling我在工作中遇到过这种情况,但我不知道确切的邮件服务器软件。谢谢你的建议。