+ -
当前位置:首页 → 问答吧 → 定时间隔发邮件程序!

定时间隔发邮件程序!

时间:2007-11-29

来源:互联网

公司邮件服务期不允许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 = "[email protected]";                      // 发件人邮箱 
$mail->FromName = "中国资金管理网";                 //   发件人 ,比如 中国资金管理网
$mail->CharSet = "GB2312";                          // 这里指定字符集! 
$mail->Encoding = "base64";  
$mail->AddAddress($sendto_email,$user_name);        // 收件人邮箱和姓名 
$mail->AddReplyTo("[email protected]","中国资金管理网");  
//$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

下了,顶

作者: sunfall   发布时间: 2007-11-28

这种东西cron再适合不过了
这么不停的刷是不太好.

作者: liuxingyuyuni   发布时间: 2007-11-29

cron 是啥? 能说清楚点吗?? 谢谢啦!

作者: CFC4N   发布时间: 2007-11-29

下载了,呵呵,谢谢哈

作者: qs9515   发布时间: 2007-11-29

好东西~发爆人家邮箱哈哈

作者: jsp   发布时间: 2007-11-29

cron 是任务计划管理
像似与windows下的系统工具里的任务计划```

作者: jongin   发布时间: 2007-11-29

如果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

哈,谢谢楼上的,不过你这方法不适合我!!!

(公司邮件服务期不允许10分钟内发送大量邮件, 限制了, 但是要把邮件发送给1000 多个用户,所以计划任务不适合这里!!!)

作者: CFC4N   发布时间: 2007-11-30

很不错,就需要这样言简意赅的小程序

希望论坛能多点这样的好东东

作者: raojunscu   发布时间: 2007-11-30



非常不�e,

如果是�]件�热菀��樱��l送�r�g也可以一�拥脑�,
建�h: �l送多��收件人,一次即可以�l一千�装���人。
       如果不想�e人看到全部收件人,可以�x�癜邓投嗳耍

作者: coolstr   发布时间: 2007-11-30

不懂 我看看

作者: 阿米   发布时间: 2007-12-07

用了计划任务是不是就没有时间限制了呢?最近要做订阅新闻的功能,不太了解邮件这一块!但要是有很多人订阅了怎么解决呢?

[ 本帖最后由 pets511 于 2007-12-7 17:52 编辑 ]

作者: pets511   发布时间: 2007-12-07

难道发垃圾广告邮件?

作者: luzhou   发布时间: 2007-12-08

引用:
原帖由 pets511 于 2007-12-7 17:50 发表
用了计划任务是不是就没有时间限制了呢?最近要做订阅新闻的功能,不太了解邮件这一块!但要是有很多人订阅了怎么解决呢?
不是程序有时间限制,而是 stmp邮箱服务器有时间限制的啊!!

作者: CFC4N   发布时间: 2007-12-21

有没人测试之后有发现:使用获取文本的形式发送附件的话
   附件的文件名是临时文件呢,LZ能不能说下怎么转换吖?

作者: jojoyy   发布时间: 2007-12-25

作者: x_c_x   发布时间: 2008-03-26