首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

定时间隔发邮件程序!

公司邮件服务期不允许10分钟内发送大量邮件, 限制了, 但是要把邮件发送给1000 多个用户,不知道怎么解决,论坛里search了一下,没类似程序,后来乱七八遭的,写出来了,也问了很多人,在这里发下,尽管写的很垃圾,但是希望能给需要这程序的人用的到!!
使用方法在 readme.txt 里!!


set_time_limit 随便,我没设置,也能发!
send页面代码如下
复制PHP内容到剪贴板
PHP代码:

<?php 
// 请求 PHPmailer类 文件
require_once("class.phpmailer.php");  
//发送Email函数
function smtp_mail $sendto_email$subject$body$extra_hdrs$user_name) { 
$mail = new PHPMailer();  
$mail->IsSMTP();                                     // send via SMTP  
$mail->Host "smtp.163.com";                       // SMTP servers  
$mail->SMTPAuth true;                             // turn on SMTP authentication  
$mail->Username "cfc4n";                          // SMTP username     注意:普通邮件认证不需要加 @域名 
$mail->Password "123456";                         // SMTP password  
$mail->From "cfc4n@163.com";                      // 发件人邮箱 
$mail->FromName "中国资金管理网";                 //   发件人 ,比如 中国资金管理网
$mail->CharSet "GB2312";                          // 这里指定字符集! 
$mail->Encoding "base64";  
$mail->AddAddress($sendto_email,$user_name);        // 收件人邮箱和姓名 
$mail->AddReplyTo("treasurer@treasurer.org.cn","中国资金管理网");  
//$mail->WordWrap = 50; // set word wrap  
//$mail->AddAttachment("/var/tmp/file.tar.gz");                                                    // attachment  附件1
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");                                         //附件2
$mail->IsHTML(true);                               // send as HTML  
$mail->Subject $subject;                        
// 邮件内容      可以直接发送html文件
$mail->Body = <<<EOT
<html><head> 
<meta http-equiv="Content-Language" c> 
<meta http-equiv="Content-Type" c>
<body>
{$user_name}你好,欢迎您注册本站用户!
</body>
</html>
EOT;
$mail->AltBody ="text/html";  
if(
$mail->Send())  
        {  
   
info_write("ok.txt","$user_name发送成功");
        }  
else { 
   
info_write("falied.txt","$user_name失败,错误信息$mail->ErrorInfo");
     } 

// 发送Email函数结束
// 写入发送结果函数
function info_write($filename,$info_log)
    {
  
$info.= $info_log;
  
$info.="\r\n";
  
$fp fopen ($filename,a);
  
fwrite($fp,$info);
  
fclose($fp);
}
//定时跳转页面 函数  其中 1000是时间,1秒, 您可以自定义
function redirect($url)
    {
         echo 
"<script>
    function redirect() {
     window.location.replace('$url');
    }
    window.setTimeout('redirect();', 15000);
     </script>"
;
    }
//读取文本 邮件地址  您也可以读 数据库
        
$filename "email.txt";
        
$fp fopen($filename,"r");
        
$contents fread($fp,filesize($filename));
        
$num_email=explode("\r\n",$contents);         
  
$len=count($num_email);
        
fclose($fp);
// 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)
$i $_GET['action'];
        
$i++;  
if (
$i<$len)
    {
  
$rs=explode("@",$num_email[$i]);
  
$user_name $rs['0'];
  echo 
"正在发送第{$i}封({$num_email[$i]})邮件......";
        
smtp_mail($num_email[$i], 'Treasury Online周刊第十期'$body'http://www.treasurer.org.cn/'$user_name);
        
redirect("?action=$i");
    }
else {
     echo 
"邮件全部发送完毕";
  exit;
      }
?>

[ 本帖最后由 CFC4N 于 2007-12-7 09:33 编辑 ]
昵称: CFC4N  时间: 2007-11-28 17:36:00
下了,顶
昵称: sunfall  时间: 2007-11-28 17:51:00
这种东西cron再适合不过了
这么不停的刷是不太好.
昵称: liuxingyuyuni  时间: 2007-11-29 09:19:00
cron 是啥? 能说清楚点吗?? 谢谢啦!
昵称: CFC4N  时间: 2007-11-29 09:23:00
下载了,呵呵,谢谢哈
昵称: qs9515  时间: 2007-11-29 10:04:00
好东西~发爆人家邮箱哈哈
昵称: jsp  时间: 2007-11-29 19:13:00
cron 是任务计划管理
像似与windows下的系统工具里的任务计划```
昵称: jongin  时间: 2007-11-29 20:19:00
如果CRON行不通...这边这个估计也就是一个比较方便的选择了.
因为我以前也用过:)
代码如下:
<html>
<head>
<title>定时刷新</title>
<meta http-equiv="Content-Type" content="text/html;  charset=gb2312">
<meta name="GENERATOR" content="Microsoft  FrontPage  4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<script language="javascript">
<!--  
var timeID;
function startrefresh()
{
timeID = setTimeout("refresh()",10);
}
function  refresh()
{
var  now  =  new  Date()
var  hours  =  now.getHours()
var  minutes  =  now.getMinutes()
var  seconds  =  now.getSeconds()
if(hours >= 14 && hours < 15)
{
location.reload();
}
}
//-->
</script>
</head>
<body onload="startrefresh()">
<form>
00000000
</form>
</body>
</html>
昵称: liuxingyuyuni  时间: 2007-11-30 09:27:00
哈,谢谢楼上的,不过你这方法不适合我!!!

(公司邮件服务期不允许10分钟内发送大量邮件, 限制了, 但是要把邮件发送给1000 多个用户,所以计划任务不适合这里!!!)
昵称: CFC4N  时间: 2007-11-30 09:51:00
很不错,就需要这样言简意赅的小程序

希望论坛能多点这样的好东东
昵称: raojunscu  时间: 2007-11-30 11:57:00


非常不�e,

如果是�]件�热菀��樱��l送�r�g也可以一�拥脑�,
建�h: �l送多��收件人,一次即可以�l一千�装���人。
       如果不想�e人看到全部收件人,可以�x�癜邓投嗳耍
昵称: coolstr  时间: 2007-11-30 12:41:00
不懂 我看看
昵称: 阿米  时间: 2007-12-07 13:26:00
用了计划任务是不是就没有时间限制了呢?最近要做订阅新闻的功能,不太了解邮件这一块!但要是有很多人订阅了怎么解决呢?

[ 本帖最后由 pets511 于 2007-12-7 17:52 编辑 ]
昵称: pets511  时间: 2007-12-07 17:50:00
难道发垃圾广告邮件?
昵称: luzhou  时间: 2007-12-08 07:13:00
引用:
原帖由 pets511 于 2007-12-7 17:50 发表
用了计划任务是不是就没有时间限制了呢?最近要做订阅新闻的功能,不太了解邮件这一块!但要是有很多人订阅了怎么解决呢?
不是程序有时间限制,而是 stmp邮箱服务器有时间限制的啊!!
昵称: CFC4N  时间: 2007-12-21 11:24:00
有没人测试之后有发现:使用获取文本的形式发送附件的话
   附件的文件名是临时文件呢,LZ能不能说下怎么转换吖?
昵称: jojoyy  时间: 2007-12-25 13:56:00
昵称: x_c_x  时间: 2008-03-26 18:18:00