需求:发送大约5万封会员邮件(非垃圾邮件)通知。
代码如下:
$From = "[email protected]";
$Bcc = "[email protected], [email protected], [email protected], [email protected], ...";
$Subject = "标题";
$Content = "bla bla bla";
$fp = popen("/usr/sbin/sendmail -t","w");
fwrite($fp, "From: ".$From."\n"); //往管道写数据
fwrite($fp, "Return-Path: ".$From."\n");
fwrite($fp, "Bcc: ".$Bcc."\n");
fwrite($fp, "Subject: ".$Subject."\n");
fwrite($fp, "Mime-Version: 1.0\n");
fwrite($fp, "Content-Type: text/html; charset=\"gb2312\"\n\n");
fwrite($fp, $Content."\n");
pclose($fp); //关闭管道 注意代码里的 $Bcc 里对应的密送邮件列表,我试过写50个没问题。
我想知道能不能把5万个邮件地址写在里面,可以不可以啊?
高分相送,请高手们说说是否可行,会不会超过负荷导致失败以及别的什么问题。我想这段代码没有发送失败的记录啊,这个不知道怎么入手。
莫非得查sendmail的log ?或者有别的群发邮件的好方法也不吝指教。谢谢~顶贴也给分!
代码如下:
$From = "[email protected]";
$Bcc = "[email protected], [email protected], [email protected], [email protected], ...";
$Subject = "标题";
$Content = "bla bla bla";
$fp = popen("/usr/sbin/sendmail -t","w");
fwrite($fp, "From: ".$From."\n"); //往管道写数据
fwrite($fp, "Return-Path: ".$From."\n");
fwrite($fp, "Bcc: ".$Bcc."\n");
fwrite($fp, "Subject: ".$Subject."\n");
fwrite($fp, "Mime-Version: 1.0\n");
fwrite($fp, "Content-Type: text/html; charset=\"gb2312\"\n\n");
fwrite($fp, $Content."\n");
pclose($fp); //关闭管道 注意代码里的 $Bcc 里对应的密送邮件列表,我试过写50个没问题。
我想知道能不能把5万个邮件地址写在里面,可以不可以啊?
高分相送,请高手们说说是否可行,会不会超过负荷导致失败以及别的什么问题。我想这段代码没有发送失败的记录啊,这个不知道怎么入手。
莫非得查sendmail的log ?或者有别的群发邮件的好方法也不吝指教。谢谢~顶贴也给分!
比如说你的bcc, 在上述代码中是以字符串形式存在的, 这还受PHP内存的限制.
具体多少你自己测试.另外,建议可以将用户划分成不同的邮件组,然后bcc给邮件组,这样可能会更好些.
具体多少你自己测试.
这个怎么试啊,拿会员的邮件做试验会被砍死哟什么叫用户划分成不同的邮件组?这个具体怎么弄?不太明白~
不管是字符串,还是数组,都是要占系统内存的,至于比例,这个得自己考证.
2 至于邮件组,类似于这种的.
[email protected], 将公司所有员工都加入到这个邮件组,其实你只要将邮件发送到这个地址,所有员工就能收到了.
这个需要建立邮件服务器. 这样的话,你可以将用户划分成不同的组,然后bcc给不同的组就行了.
具体限制数量跟服务器设定有关。5万肯定是不行的,
循环发n遍达到5万不久的了。
1. 试过了,拿自己的邮件重复1w次 恐怕不行 至少发给gmail的都当成一份。2. 基本解决了~ 不通过浏览器执行了 直接SSH进机器,然后写for 循环来发送...3. 由于发送量太多,会导致脚本执行时间过长。还是希望高人能说写如果在浏览器端执行循环发送怎样才能搞定,