ホームページ php教程 php手册 PHP实现邮件群发机

PHP实现邮件群发机

Jun 13, 2016 am 10:54 AM
php 原理 成し遂げる 供給 シナ 適用する テンセント グーグル 郵便 郵便 ヤフー

原理:

第一申请大量的邮箱帐号 腾讯的 126的 163的 新浪的 雅虎的 谷歌的 等等提供smtp服务的

第二:收集你要发送邮件的邮件列表

第三:遍历邮件列表,每一个邮件发送邮件

第四:用linux下定时脚本后台运行 我跑了两天 哈哈 ,因为为了尽可能的保证每一个都发送成功

 

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

第一:邮件失败的问题,我这里采用两个方式解决,第一把大量的那些邮箱帐号依次去发送,直到成功。然后每次发送500封邮件 后把发送邮箱列表随机打散(避免一个持续失败)。

我用的是phpmailer

多的不多说了上代码了。phpmailer 大家自己搜索下载吧

 

入口脚本:就是linux 执行的 mail_001.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

 

// 请求 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

 

$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邮箱  www.2cto.com

        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'), 

        //谷歌邮箱 

        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'), 

); 

文件的代码我上传附件了,但是里面的发送邮箱我改了,如果有用的自行申请。

现在php发送邮件的网上的好多版本,找到适用你的那个就行了。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

gate.io登録チュートリアル gate.io登録チュートリアル Mar 31, 2025 pm 11:09 PM

この記事では、公式ウェブサイトへのアクセスから登録の完了までのすべてのステップをカバーする詳細なgate.io登録チュートリアルを提供します。登録情報の記入、検証、ユーザー契約の読み取りなどを説明します。この記事では、登録の成功後、レアルネーム認証を完了した後のセキュリティ対策を強調し、初心者からのヒントを提供して、デジタルアセットの交通旅を開始するためのヒントを提供します。

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

初心者向けのgate.io最新の登録チュートリアル 初心者向けのgate.io最新の登録チュートリアル Mar 31, 2025 pm 11:12 PM

この記事では、初心者に詳細なgate.io登録チュートリアルを提供し、公式ウェブサイトへのアクセス、情報、身元確認などを埋めるなど、登録プロセスを徐々に完了するように導き、登録後のセキュリティ設定を強調します。さらに、この記事は、Binance、Ouyi、Sesame Open Doorなどの他の交換についても言及しました。初心者は自分のニーズに応じて適切なプラットフォームを選択し、デジタル資産への投資がリスクがあり、合理的に投資する必要があることを読者に思い出させることをお勧めします。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Apr 01, 2025 pm 02:45 PM

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Mar 31, 2025 pm 11:48 PM

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

See all articles