PHP实现邮件群发的源码

前端技术 2023/09/08 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 = \"jessiejl\";                          // SMTP username     注意:普通邮件认证不需要加 @域名
 $mail->Password = \"1983106\";                         // SMTP password 

 $mail->From = \"\";                      // 发件人邮箱
 $mail->FromName = \"WWW.NIUTW.COM\";                 //   发件人 ,比如 唯美搭配网

 $mail->CharSet = \"GB2312\";                          // 这里指定字符集!
 $mail->Encoding = \"base64\"; 

 $mail->AddAddress($sendto_email,$user_name);        // 收件人邮箱和姓名
 $mail->AddReplyTo(\"\",\"Web之家\"); 

 //$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>
 <title>Treasurery Online 周刊</title>
 <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
 <style type=\"text/css\">
 <!--
 .STYLE1 {color: #009900}
 .STYLE3 {color: #000000}
 a:link {
     color: #333333;
 }
 .STYLE4 {color: #666666}
 body,td,th {
     font-family: 宋体;
     font-size: 12px;
 }
 .STYLE6 {color: #FFFFFF}
 .STYLE9 {color: #DCB003}

   

 -->
 </style>
 </head>
 <body bgcolor=\"#FFFFFF\" >

 </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));
         $list_email=explode(\"\\r\\n\",$contents);           
         $len=count($list_email);
         fclose($fp);

 // 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)
 $i = $_GET[\'action\'];
         $i++;       
 if ($i<$len)
     {
         $rs=explode(\"@\",$list_email[$i]);
         $user_name = $rs[\'0\'];
         echo \"正在发送第{$i}封({$list_email[$i]})邮件......{$user_name}\";
         smtp_mail($list_email[$i], \'Treasurery Online 周刊第十二期\', $body, \'http://www.yem120.com/\', $user_name);
         redirect(\"?action=$i\");
     }
 else {
      echo \"邮件全部发送完毕\";
      exit;
       }

 ?>

小思维:
上面的读取文章email.txt,也可以直接是qq号码,每行一个号码,然后用fget()读取每行qq号码,最后在加上qq邮箱后缀 @qq.com即可

本文地址:https://www.stayed.cn/item/22007

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。