2009-08-24 157 views

回答

0

使用PHPMailer库,它有很多功能。将电子邮件地址存储为数组,然后使用for循环将每个电子邮件地址作为字符串添加到mail-> AddAddress字段。它会照顾发送大量邮件。我只用它一次发送大量邮件到6/7地址。它也应该可以用于数百个地址。

1

必须使用PHP?如果是这样,我会使用PHPMailer,我对它有一些经验,它并没有让我无法批量发送电子邮件。

或者,如果您有权访问服务器,请查看使用Postfix或Sendmail,它们是该邮件数量的更好选项。

2

我不会尝试编写自己的批量邮件,除非您有很多时间。有很多问题需要解决,包括限制电子邮件,发送电子邮件到小批量,所以美国在线和其他服务提供商不认为你的服务器是垃圾邮件的人。同时你想要包括跟踪打开的电子邮件,跟踪反弹的电子邮件,点击链接等。

我会看一些开源选项,如www.phplist.com这是一个非常好的开源程序,用于执行批量电子邮件。

或者在商业方面看看Interspire Email Markerer,它是一款非常漂亮的产品,非常值钱,而且您可以将其托管在您自己的服务器上。

www.interspire.com/emailmarketer/

+0

旧帖子我知道,但为什么不直接添加电子邮件列表到密件抄送? – AlxVallejo 2012-07-23 21:26:14

+0

@AlxVallejo,因为它会超出您的电子邮件标题限制并会导致错误。 – 2014-07-19 06:41:02

0

可以使用swiftmailer它。通过使用批处理。

<?php 
    $message = Swift_Message::newInstance() 
     ->setSubject('Let\'s get together today.') 
     ->setFrom(array('[email protected]' => '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(); 
?>