【发布时间】:2017-07-06 17:39:44
【问题描述】:
我想使用 php 邮件功能在 PHP 中向数百个电子邮件地址发送邮件。 我该怎么做?
【问题讨论】:
我想使用 php 邮件功能在 PHP 中向数百个电子邮件地址发送邮件。 我该怎么做?
【问题讨论】:
你也可以使用SwiftMailer
也请看类似的帖子here
【讨论】:
你可以试试phplist
这将是一个更好的选择
【讨论】:
除非您有很多时间,否则我不会尝试编写自己的批量邮件。有很多问题需要解决,包括限制电子邮件、小批量发送电子邮件,因此 AOL 和其他服务提供商不会将您的服务器视为垃圾邮件人。此外,您可能还想包括跟踪打开的电子邮件、跟踪退回的电子邮件、点击的链接等。
我会考虑一些开源选项,例如 www.phplist.com,这是一个非常好的用于批量发送电子邮件的开源程序。
或者在商业方面看看 Interspire 电子邮件标记器,它是一款非常出色的产品,物有所值,而且您可以将其托管在自己的服务器上。
【讨论】:
你必须使用 PHP 吗?如果是这样,我会使用 PHPMailer,我对它有一些经验,并且它并没有让我在批量发送电子邮件方面失败。
或者,如果您可以访问服务器,请考虑使用 Postfix 或 Sendmail,对于该数量的邮件,它们是更好的选择。
【讨论】:
如果您要发送大量邮件,您不想全部发送@一次,否则您将消耗太多资源。
这里有一个关于如何使用 PEAR 库的 Mail_Queue 组件的教程:http://pear.php.net/manual/en/package.mail.mail-queue.mail-queue.tutorial.php
它基本上会在不限制您的服务器的情况下逐步发送您的电子邮件群。
【讨论】:
使用 PHPMailer 库,它有很多功能。将电子邮件地址存储为数组并使用 for 循环将每个电子邮件地址作为字符串添加到 mail->AddAddress 字段。它将负责发送批量邮件。我只用它一次将批量邮件发送到 6/7 个地址。它也应该适用于数百个地址。
【讨论】:
您可以使用 swiftmailer。通过使用批处理。
<?php
$message = Swift_Message::newInstance()
->setSubject('Let\'s get together today.')
->setFrom(array('myfrom@domain.com' => 'From Me'))
->setBody('Here is the message itself')
->addPart('<b>Test message being sent!!</b>', 'text/html')
;
$data = mysql_query('SELECT first, last, email FROM users WHERE is_active=1') or die(mysql_error());
while($row = mysql_fetch_assoc($data))
{
$message->addTo($row['email'], $row['first'] . ' ' . $row['last']);
}
$message->batchSend();
?>
【讨论】: