PHP邮件群发机实现代码

前端之家收集整理的这篇文章主要介绍了PHP邮件群发机实现代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

原理:

第一:申请大量的邮箱帐号 腾讯的 126的 163的 新浪的 雅虎的 谷歌的 等等提供smtp服务的 第二:收集你要发送邮件邮件列表 第三:遍历邮件列表,每一个邮件发送邮件 第四:用linux下定时脚本后台运行 我跑了两天 哈哈 ,因为为了尽可能的保证每一个都发送成功

原理是很简单,但是其中还是遇到很多的问题。

第一:邮件失败的问题,我这里采用两个方式解决,第一把大量的那些邮箱帐号依次去发送,直到成功。然后每次发送500封邮件 后把发送邮箱列表随机打散(避免一个持续失败)。 我用的是PHPmailer 多的不多说了上代码了。PHPmailer 大家自己搜索下载吧

入口脚本:就是linux 执行的 mail_001.PHP

PHP;toolbar:false;" data-role="code">
$value) 
{ 
 $value = trim($value); 
 $rs=explode("@",$value); 
 $user_name = $rs['0']; 
 smtp_mail($value,'秋季补水化妆品_秋季护肤皮肤保养_秋天皮肤干燥怎么办-小常识',$htmlContent,'http://taobao.1080www.com/',$user_name,$senderListConf,0); 
 sleep(3); 
 if($key%200 == 0 && $key>0) 
 { 
  shuffle($senderListConf); //每200次 吧发送邮件顺序打乱一次 
 } 
} 
die('SendingOver.................'."\r\n"); 
?>

封装PHPmailer senderApi.PHP

PHP;toolbar:false;" data-role="code">
IsSMTP(); 
 $sender_info = $senderListConf[$sender]; 
 if(!$sender_info) 'die 发送帐号出错了..............'; // send via SMTP 
 $mail->Host = $sender_info['Host'];      // SMTP servers 
 $mail->SMTPAuth = true;        // turn on SMTP authentication 
 $mail->Username = $sender_info['Username'];       // SMTP username  注意:普通邮件认证不需要加 @域名 
 $mail->Password = $sender_info['Password'];       // SMTP password 
 $mail->From = $sender_info['Username'];      // 发件人邮箱 
 $mail->FromName = "淘宝推荐---TaoBao";     // 发件人,比如 中国资金管理网 
 $mail->CharSet = "UTF-8";       // 这里指定字符集! 
 $mail->Encoding = "base64"; 
 $mail->AddAddress($sendto_email,$user_name);  // 收件人邮箱和姓名 
 $mail->AddReplyTo("ken@cscsws.com","淘宝推荐"); 

//$mail->WordWrap = 50; // set word wrap
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 附件1
//$mail->AddAttachment("/home/www/images/zhuanti/qiujibushui/qiujibushui_attache.jpg","new.jpg"); //附件2
$mail->IsHTML(true); // send as HTML
$mail->Subject = $subject;

// 邮件内容 可以直接发送html文件
$mail->Body = $body;
$mail->AltBody ="text/html";
if($mail->Send())
{
info_write(ROOT_PATH.'/log/'.$batch_no."ok.txt","$user_name 发送成功");
}
else
{
info_write(ROOT_PATH.'/log/'.$batch_no."falied.txt","$user_name 失败,发送账号".$sender_info['Username'].",错误信息$mail->ErrorInfo");
if($senderListConf[$sender+1])
{
$sender = smtp_mail ( $sendto_email,($sender+1));
}
}
return $sender;
}

发送邮件列表示例 senderListConf.PHP

PHP;toolbar:false;" data-role="code">
//搜狐邮箱
array('Host'=>'smtp.sohu.com','Username'=>'youemail@sohu.com','Password'=>'yourpassword'),//雅虎邮箱
array('Host'=>'smtp.mail.yahoo.com','Username'=>'youemail@yahoo.cn',//163邮箱
array('Host'=>'smtp.163.com','Username'=>'youemail@163.com',//126邮箱
array('Host'=>'smtp.126.com','Username'=>'youemail@126.com',//QQ邮箱
array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com',//谷歌邮箱
array('Host'=>'smtp.gmail.com','Username'=>'youemail@gmail.com',//139邮箱
array('Host'=>'smtp.139.com','Username'=>'youemail@139.com','Password'=>'(yourpassword'),);

猜你在找的PHP相关文章