2009-02-19 52 views
2

我有我的网站上的应用程序,人们可以申请接收简讯,然后有人在付费组可以写,并立即发出一个大家谁签署了...自动邮件列表 - PHP

。 ..意味着我需要一种有效的方式来循环访问订阅者数据库,并使用php邮件发送邮件副本。

清楚,有邮件()函数....我可以把它放在一个循环...有没有更好的办法?

回答

1

我建议通过寻找一种方法来循环,记住你已经寄给谁,因为如果它成为一个大名单的人,你的脚本可能会结束,你不得不重新加载它。

我曾经使用AJAX做到了,给了我一个伟大的方式来跟踪在那里我是在送理线。算了多少人邮寄,把ID的数组,有JavaScript的循环,并作出单独的电话到一个PHP的邮件页...

-edit- 你可以有一个PHP脚本,一个简单的while循环,但是你应该在数据库中添加一个检查来查看邮件是否已经发送给一个人。如果脚本超过内存使用情况,只需重新加载页面,它将只发送给那些尚未收到书的那些...

+0

冷静下来的那....你的意思是只有邮件()功能? – johnnietheblack 2009-02-19 16:40:13

+0

每个收件人发一封邮件而不只是bcc呢? – OIS 2009-02-19 17:27:13

3

PEAR的mail queue

的Mail_Queue类把邮件在 临时容器,等待被馈送 到MTA(邮件传输代理),和 后发送它们(例如一定 量的电子邮件的每隔几分钟)由 crontab或以其他方式。

+0

是的香港专业教育学院听说过太多其实......我尝试安装梨和使用它,但有麻烦一点点(我的网站子域名之间传播,并具有固定的图书馆对我来说变得混乱)...是很难使用,但一般来说呢? – johnnietheblack 2009-02-19 16:39:17

0

尝试phplist(Homepage)如果你需要一个全功能的通讯和邮件列表管理器

3

您可以使用BCC头选项,并发送一个电子邮件密件抄送所有用户的列表。 因此,建立在循环中的BCC串并发送一个电子邮件使用电子邮件()

片段从PHP手册...

// To send HTML mail, the Content-type header must be set 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Additional headers 
$headers .= 'To: Mary <[email protected]>, Kelly <[email protected]>' . "\r\n"; 
$headers .= 'From: Birthday Reminder <[email protected]>' . "\r\n"; 
$headers .= 'Cc: [email protected]' . "\r\n"; 
$headers .= 'Bcc: [email protected]' . "\r\n"; 

// Mail it 
mail($to, $subject, $message, $headers); 

替换 '密件抄送:[email protected]' 与$ mySubscribersList

1

关于@ paulbm的回答,为什么不在服务器上创建一个指向所有当前电子邮件地址的别名?短的procmail脚本可以防止使用别名的一个授权发件人以外的任何人。

这将会使邮件的方便,并与新的/改变的电子邮件地址重建名单将是非常简单,太。