PHP邮件批量发送问题 本帖最后由 hqulyc 于 2010-05-11 11:53:04 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. 如何让其一次性发送完3000封邮件?失败时,sleep一段时间可以让发送失败的,fwrite 到一个文本里。2. 如何发送一封邮件就在页面显示提示信息,使其看起来像是一封封的发送(队列式).能不能实现,有争议。。 自己的一点想法 具体还得靠楼主自己实现 希望对你有帮助ignore_user_abort(true);set_time_limit(0); //加上这句可以让程序一次性发送完function test(){ echo date('h:i:s') . "<br>";//展示发送成功的界面显示}ob_end_clean();ob_start();//开始缓冲数据while(1){ echo str_repeat(" ",1024);//ie有默认的1k buffer ob_flush(); flush(); test();//填写mail发送完成的条件 加if判断后 发送成功则执行 否则输出等待状态 usleep(1000000);//这个地方演示用 放在系统里注释掉 //这个地方需要传个标志位用来判断是否全部发送完 成立则 break;} hi, bing19870624,感谢指点。以下是我的具体代码,sendmail里面是调用mail直接发送,如此!大概有发送N封邮件后,网页提示无法访问,也就是无法发送完所有邮件。 set_time_limit(0); $subject = $_POST['subject']; $message = $_POST['message']; $sql = "select uEmail from tb_user"; $result = mysql_query($sql); $cnt = 0; while ($row = mysql_fetch_array($result)) { if ($row['uEmail'] != ''){ sendmail($row['uEmail'], $subject, $message); echo $row['uEmail'].' => ok<br>'; $cnt++; } } echo "<br> $cnt 封会员邮件发送完毕。<br>"; hi, yangball:可能我没描述清楚,我的问题是无法全部发送完。发送失败没关系。 可以刷新页面分页分送啊!sm.php?limit=0sm.php?limit=100<?php$limit = intval($_GET["limit"]);$list = 0;for($i = $limit; $i < $limit + 100; $i ++){if($list >= 100){header("location:sm.php?limit=".($limit + 100));}...................$list ++;}} 顶楼上的,赞同!我这里有个:CTB论坛会员批量发送邮件1.1http://blog.chinaunix.net/u/19061/showart_2182400.html批量发送方法,类似,楼上所说的。 php大文件上传怎么实现的? MYSQL菜鸟求助 请教下preg_match的问题 MySQL的Update的使用 求助,这个语句如何简化? 帮忙解读一下这个php字符串截取函数的算法. 一个关于时间控件的问题! 请问有没有人可以提供几个不错的《新闻发布》系统 后退到用户登陆的提交页面后总是显示“网页已经过期”这个怎么解决?谢谢 php的一帮人太差劲了,我决定退出这个分论坛。 php网页出现乱码情况 有谁用过 httpcws吗,怎么重启httpcws 在线等
失败时,sleep一段时间
可以让发送失败的,fwrite 到一个文本里。2. 如何发送一封邮件就在页面显示提示信息,使其看起来像是一封封的发送(队列式).
能不能实现,有争议。。
set_time_limit(0); //加上这句可以让程序一次性发送完
function test(){
echo date('h:i:s') . "<br>";//展示发送成功的界面显示
}
ob_end_clean();
ob_start();//开始缓冲数据
while(1){
echo str_repeat(" ",1024);//ie有默认的1k buffer
ob_flush();
flush();
test();//填写mail发送完成的条件 加if判断后 发送成功则执行 否则输出等待状态
usleep(1000000);//这个地方演示用 放在系统里注释掉
//这个地方需要传个标志位用来判断是否全部发送完 成立则 break;
}
感谢指点。以下是我的具体代码,sendmail里面是调用mail直接发送,如此!
大概有发送N封邮件后,网页提示无法访问,也就是无法发送完所有邮件。
set_time_limit(0);
$subject = $_POST['subject'];
$message = $_POST['message'];
$sql = "select uEmail from tb_user";
$result = mysql_query($sql);
$cnt = 0;
while ($row = mysql_fetch_array($result))
{
if ($row['uEmail'] != ''){
sendmail($row['uEmail'], $subject, $message);
echo $row['uEmail'].' => ok<br>';
$cnt++;
}
}
echo "<br> $cnt 封会员邮件发送完毕。<br>";
hi, yangball:可能我没描述清楚,我的问题是无法全部发送完。发送失败没关系。
sm.php?limit=100<?php
$limit = intval($_GET["limit"]);$list = 0;
for($i = $limit; $i < $limit + 100; $i ++){
if($list >= 100){
header("location:sm.php?limit=".($limit + 100));
}
...................
$list ++;
}
}
http://blog.chinaunix.net/u/19061/showart_2182400.html批量发送方法,类似,楼上所说的。