【代码】邮件群发机PHP实现实例分享
来源:互联网 发布:意识与人工智能的关系 编辑:程序博客网 时间:2024/05/17 02:29
原理:
第一申请大量的邮箱帐号 腾讯的 126的 163的 新浪的 雅虎的 谷歌的 等等提供smtp服务的
第二:收集你要发送邮件的邮件列表
第三:遍历邮件列表,每一个邮件发送邮件
第四:用linux下定时脚本后台运行 我跑了两天 哈哈 ,因为为了尽可能的保证每一个都发送成功
原理是很简单,但是其中还是遇到很多的问题。
第一:邮件失败的问题,我这里采用两个方式解决,第一把大量的那些邮箱帐号依次去发送,直到成功。然后每次发送500封邮件 后把发送邮箱列表随机打散(避免一个持续失败)。(PS:^_^不错的php开发交流群:304224365,验证:csl,有兴趣的话可以加入进来一起讨论)
我用的是phpmailer
多的不多说了上代码了。phpmailer 大家自己搜索下载吧
入口脚本:就是linux 执行的 mail_001.php
以上是本文关于邮件群发机PHP实现实例分享,希望本文对广大php开发者有所帮助,感谢阅读本文。
第一申请大量的邮箱帐号 腾讯的 126的 163的 新浪的 雅虎的 谷歌的 等等提供smtp服务的
第二:收集你要发送邮件的邮件列表
第三:遍历邮件列表,每一个邮件发送邮件
第四:用linux下定时脚本后台运行 我跑了两天 哈哈 ,因为为了尽可能的保证每一个都发送成功
原理是很简单,但是其中还是遇到很多的问题。
第一:邮件失败的问题,我这里采用两个方式解决,第一把大量的那些邮箱帐号依次去发送,直到成功。然后每次发送500封邮件 后把发送邮箱列表随机打散(避免一个持续失败)。(PS:^_^不错的php开发交流群:304224365,验证:csl,有兴趣的话可以加入进来一起讨论)
我用的是phpmailer
多的不多说了上代码了。phpmailer 大家自己搜索下载吧
入口脚本:就是linux 执行的 mail_001.php
01<?php 02define('ROOT_PATH',dirname(__FILE__));03require_once 'library/senderApi.php'; //发送邮件接口04require_once 'config/senderListConf.php'; //发送邮件帐号列表05//读取文本 邮件地址 06shuffle($senderListConf);07$filename = "data/email.txt";08$fp = fopen($filename,"r");09$contents = fread($fp,filesize($filename));10$list_email=explode("\r\n",$contents); 11$len=count($list_email);12fclose($fp);13//邮件内容为网页上的内容14$htmlContent = file_get_contents('http://taobao.1080www.com');15// 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)16foreach($list_email as $key=>$value)17{18 $value = trim($value);19 $rs=explode("@",$value);20 $user_name = $rs['0'];21 smtp_mail($value, '秋季补水化妆品_秋季护肤皮肤保养_秋天皮肤干燥怎么办-小常识',$htmlContent, 'http://taobao.1080www.com/', $user_name,$senderListConf,0);22 sleep(3);23 if($key%200 == 0 && $key>0)24 {25 shuffle($senderListConf); //每200次 吧发送邮件顺序打乱一次26 }27}28die('SendingOver.................'."\r\n");29?>封装phpmailer senderApi.php 01<?php 02// 请求 PHPmailer类 文件 03error_reporting(E_ERROR); 04require_once("phpmailer/phpmailer.class.php"); 05// 写入发送结果函数 06function info_write($filename,$info_log) 07{ 08 $info.= $info_log; 09 $info.="\r\n"; 10 $fp = fopen ($filename,'a'); 11 fwrite($fp,$info); 12 fclose($fp); 13} 14//发送Email函数 15function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name,$senderListConf,$sender=0) { 16 $batch_no = date("Y_m_d_H"); 17 $mail = new PHPMailer(); 18 $mail->IsSMTP(); 19 $sender_info = $senderListConf[$sender]; 20 if(!$sender_info) 'die 发送帐号出错了..............'; // send via SMTP 21 $mail->Host = $sender_info['Host']; // SMTP servers 22 $mail->SMTPAuth = true; // turn on SMTP authentication 23 $mail->Username = $sender_info['Username']; // SMTP username 注意:普通邮件认证不需要加 @域名 24 $mail->Password = $sender_info['Password']; // SMTP password 25 $mail->From = $sender_info['Username']; // 发件人邮箱 26 $mail->FromName = "淘宝推荐---TaoBao"; // 发件人 ,比如 中国资金管理网 27 $mail->CharSet = "UTF-8"; // 这里指定字符集! 28 $mail->Encoding = "base64"; 29 $mail->AddAddress($sendto_email,$user_name); // 收件人邮箱和姓名 30 $mail->AddReplyTo("ken@cscsws.com","淘宝推荐"); 31 32 //$mail->WordWrap = 50; // set word wrap 33 //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件1 34 //$mail->AddAttachment("/home/www/images/zhuanti/qiujibushui/qiujibushui_attache.jpg", "new.jpg"); //附件2 35 $mail->IsHTML(true); // send as HTML 36 $mail->Subject = $subject; 37 38 // 邮件内容 可以直接发送html文件 39 $mail->Body = $body; 40 $mail->AltBody ="text/html"; 41 if($mail->Send()) 42 { 43 info_write(ROOT_PATH.'/log/'.$batch_no."ok.txt","$user_name 发送成功"); 44 } 45 else46 { 47 info_write(ROOT_PATH.'/log/'.$batch_no."falied.txt","$user_name 失败,发送账号".$sender_info['Username'].",错误信息$mail->ErrorInfo"); 48 if($senderListConf[$sender+1]) 49 { 50 $sender = smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name,$senderListConf,($sender+1)); 51 } 52 } 53 return $sender; 54}
发送邮件列表示例 senderListConf.php
view sourceprint?01ListConf = array( 02 03 //搜狐邮箱 04 array('Host'=>'smtp.sohu.com','Username'=>'youemail@sohu.com','Password'=>'yourpassword'), 05 //雅虎邮箱 06 array('Host'=>'smtp.mail.yahoo.com','Username'=>'youemail@yahoo.cn','Password'=>'yourpassword'), 07 //163邮箱 08 array('Host'=>'smtp.163.com','Username'=>'youemail@163.com','Password'=>'yourpassword'), 09 //126邮箱 10 array('Host'=>'smtp.126.com','Username'=>'youemail@126.com','Password'=>'yourpassword'), 11 //qq邮箱 12 array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com','Password'=>'yourpassword'), 13 //谷歌邮箱 14 array('Host'=>'smtp.gmail.com','Username'=>'youemail@gmail.com','Password'=>'yourpassword'), 15 //139邮箱 16 array('Host'=>'smtp.139.com','Username'=>'youemail@139.com','Password'=>'yourpassword'), 17 //qq邮箱 18 array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com','Password'=>'(yourpassword'),
以上是本文关于邮件群发机PHP实现实例分享,希望本文对广大php开发者有所帮助,感谢阅读本文。
- 【代码】邮件群发机PHP实现实例分享
- PHP实现邮件群发机
- php实现邮件群发
- php实现邮件群发
- php 邮件发送代码-php邮件群发
- 群发邮件的实现(没代码)
- jsp中群发邮件群发邮件实例
- php邮件群发
- php邮件群发系统
- PHP邮件群发程序
- 邮件群发代码
- JAVA群发邮件代码
- C#实现群发邮件
- C#实现群发邮件
- JAVA实现邮件群发
- php开发群发邮件功能
- 邮件群发系统代码解析
- php实现短信群发
- linux系统记录
- iOS的主要框架介绍
- OCP-1Z0-053-V12.02-372题
- Oracle VM VirtualBox各种显示模式切换 热键
- 浅谈Android五大布局(二)——RelativeLayout和TableLayout
- 【代码】邮件群发机PHP实现实例分享
- 多表关联update
- UTF8二进制及明文字符窜转化
- 360大战搜狗
- Qt QWebKit模块似的Qt Widget能通过Html的object标签嵌入到web页面中
- k Nearest Neighbors 简介
- javascript获取url上的某个参数
- virtualbox安装ubuntu12.04中的问题两则
- Bitbucket的配置