PHP郵件群發機實現代碼_php技巧

來源:互聯網
上載者:User

原理:
第一:申請大量的郵箱帳號 騰訊的 126的 163的 新浪的 雅虎的 Google的 等等提供smtp服務的
第二:收集你要發送郵件的郵件清單
第三:遍曆郵件清單,每一個郵件發送郵件
第四:用linux下定時指令碼後台運行 我跑了兩天 哈哈 ,因為為了儘可能的保證每一個都發送成功

原理是很簡單,但是其中還是遇到很多的問題。

第一:郵件失敗的問題,我這裡採用兩個方式解決,第一把大量的那些郵箱帳號依次去發送,直到成功。然後每次發送500封郵件 後把發送郵箱列表隨機打散(避免一個持續失敗)。
我用的是phpmailer
多的不多說了上代碼了。phpmailer 大家自己搜尋下載吧

入口指令碼:就是linux 執行的 mail_001.php

<?php define('ROOT_PATH',dirname(__FILE__)); require_once 'library/senderApi.php'; //發送郵件介面 require_once 'config/senderListConf.php'; //發送郵件帳號列表 //讀取文本 郵件地址 shuffle($senderListConf); $filename = "data/email.txt"; $fp = fopen($filename,"r"); $contents = fread($fp,filesize($filename)); $list_email=explode("\r\n",$contents);   $len=count($list_email); fclose($fp); //郵件內容為網頁上的內容 $htmlContent = file_get_contents('http://taobao.1080www.com'); // 參數說明(發送到, 郵件主題, 郵件內容, 附加資訊, 使用者名稱) foreach($list_email as $key=>$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 // 請求 PHPmailer類 檔案 error_reporting(E_ERROR); require_once("phpmailer/phpmailer.class.php"); // 寫入發送結果函數 function info_write($filename,$info_log) {  $info.= $info_log;  $info.="\r\n";  $fp = fopen ($filename,'a');  fwrite($fp,$info);  fclose($fp); } //發送Email函數 function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name,$senderListConf,$sender=0) {  $batch_no = date("Y_m_d_H");  $mail = new PHPMailer();  $mail->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, $subject, $body, $extra_hdrs, $user_name,$senderListConf,($sender+1));   }  }  return $sender; }


發送郵件清單樣本 senderListConf.php

<?php $senderListConf = array(    //搜狐郵箱   array('Host'=>'smtp.sohu.com','Username'=>'youemail@sohu.com','Password'=>'yourpassword'),   //雅虎郵箱   array('Host'=>'smtp.mail.yahoo.com','Username'=>'youemail@yahoo.cn','Password'=>'yourpassword'),   //163郵箱   array('Host'=>'smtp.163.com','Username'=>'youemail@163.com','Password'=>'yourpassword'),   //126郵箱   array('Host'=>'smtp.126.com','Username'=>'youemail@126.com','Password'=>'yourpassword'),   //qq郵箱   array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com','Password'=>'yourpassword'),   //Google郵箱   array('Host'=>'smtp.gmail.com','Username'=>'youemail@gmail.com','Password'=>'yourpassword'),   //139郵箱   array('Host'=>'smtp.139.com','Username'=>'youemail@139.com','Password'=>'yourpassword'),   //qq郵箱   array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com','Password'=>'(yourpassword'), );
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.