PHP による大量メール送信マシンの実装_PHP チュートリアル
- WBOYオリジナル
- 2016-07-14 10:07:421187ブラウズ
原理:
SMTP サービスを提供する Tencent の 126、163、Sina、Yahoo、Google などの多数の電子メール アカウントを最初に申請してください
2 番目: メールを送信したいメール リストを収集します
3 番目: メーリング リストを調べて、各メーリング リストにメールを送信します
4 番目: Linux でバックグラウンドで実行するスケジュールされたスクリプトを使用する。私はそれを 2 日間実行しました (笑)。なぜなら、できる限りすべてのスクリプトが正常に送信されるようにするためです。
原理は非常にシンプルですが、まだ多くの問題が発生しています。
最初: メールの失敗の問題を解決するために 2 つの方法を使用します。 1 つ目は、成功するまで大量のメール アカウントを順番に送信することです。その後、毎回 500 件の電子メールを送信した後、送信メールボックス リストはランダムに分散されます (連続的な失敗を避けるため)。
phpmailerを使用します
これ以上言うことはありません。コードに移りましょう。自分でphpmailerを検索してダウンロードしてください
エントリスクリプト:Linuxで実行されるmail_001.phpです
定義('ROOT_PATH',ディレクトリ名(__FILE__));
require_once 'library/senderApi.php' //メール送信インターフェース
;
require_once 'config/senderListConf.php' //メールアカウントリストを送信します
;
//テキストメールアドレスを読む
シャッフル($senderListConf)
$ファイル名 = "データ/メール.txt";
$fp = fopen($ファイル名,"r");
$contents = fread($fp,ファイルサイズ($ファイル名));
$list_email=explode("rn",$contents);
$len=count($list_email);
fclose($fp);
//メールの内容はウェブページの内容です
$htmlContent = file_get_contents('http://taobao.1080www.com');
// パラメータの説明 (送信先、電子メールの件名、電子メールの内容、追加情報、ユーザー名)
foreach($list_email as $key=>$value)
{
$value = トリム($value);
$rs=explode("@",$value);
$user_name = $rs['0']
smtp_mail($value, '秋の保湿化粧品_秋のスキンケアとスキンケア_秋の乾燥肌の対処法〜常識',$htmlContent, 'http://taobao.1080www.com/', $user_name,$senderListConf,0 ) ;
睡眠(3);
if($key%200 == 0 && $key>0)
{
shuffle($senderListConf); //メールの送信順序を 200 回ごとに入れ替えます
}
}
die('SendingOver....'."rn");
?>
パッケージphpmailer senderApi.php
// PHPmailer クラスファイルをリクエストする
エラー報告(E_ERROR);
require_once("phpmailer/phpmailer.class.php");
//送信結果関数の書き込み
関数 info_write($filename,$info_log)
{
$info.= $info_log
$info.="rn";
$fp = fopen ($filename,'a');
fwrite($fp,$info);
fclose($fp)
}
//メール送信機能
関数 smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name,$senderListConf,$sender=0) {
$batch_no = 日付("Y_m_d_H");
$mail = 新しい PHPMailer();
$mail->IsSMTP();
$sender_info = $senderListConf[$sender];
if(!$sender_info) 'die 送信アカウントが間違っています....' // SMTP 経由で送信します
;
$mail->ホスト = $sender_info['ホスト'];
$mail->SMTPAuth = true;
$mail->ユーザー名 = $sender_info['ユーザー名'];
$mail->パスワード = $sender_info['パスワード'];
$mail->From = $sender_info['ユーザー名'];
$mail->FromName = "淘宝網推薦 --- 淘宝" // 送信者 (中国資金管理網など)
$mail->CharSet = "UTF-8";
$mail->エンコーディング = "base64";
$mail->AddAddress($sendto_email,$user_name) // 受信者のメールアドレスと名前
$mail->AddReplyTo("ken@cscsws.com","淘宝網のおすすめ");
//$mail->WordWrap = 50 // ワードラップを設定します
;
//$mail->AddAttachment("/var/tmp/file.tar.gz");
//$mail->AddAttachment("/home/www/images/zhuanti/qiijibushui/qiojibushui_attache.jpg", "new.jpg");
$mail->IsHTML(true);
$mail->件名 = $subject;
// 電子メールのコンテンツを HTML ファイルとして直接送信できます
$mail->本文 = $body
$mail->AltBody ="text/html";
if($mail->Send())
{
info_write(ROOT_PATH.'/log/'.$batch_no."ok.txt","$user_name は正常に送信されました");
}
その他
{
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));
}
}
$sender を返す
}
メーリングリストの送信例 senderListConf.php
$senderListConf = array(
//捜狐メールボックス
array('ホスト'=>'smtp.sohu.com','ユーザー名'=>'youemail@sohu.com','パスワード'=>'あなたのパスワード'),
//ヤフーメール
array('Host'=>'smtp.mail.yahoo.com','Username'=>'youemail@yahoo.cn','Password'=>'yourpassword'),
//163 電子メール www.2cto.com
array('ホスト'=>'smtp.163.com','ユーザー名'=>'youemail@163.com','パスワード'=>'あなたのパスワード'),
//126 メール
array('ホスト'=>'smtp.126.com','ユーザー名'=>'youemail@126.com','パスワード'=>'あなたのパスワード'),
//qq メールボックス
array('ホスト'=>'smtp.qq.com','ユーザー名'=>'youemail@qq.com','パスワード'=>'あなたのパスワード'),
// Google メール
array('ホスト'=>'smtp.gmail.com','ユーザー名'=>'youemail@gmail.com','パスワード'=>'あなたのパスワード'),
//139 メール
array('ホスト'=>'smtp.139.com','ユーザー名'=>'youemail@139.com','パスワード'=>'あなたのパスワード'),
//qq メールボックス
array('ホスト'=>'smtp.qq.com','ユーザー名'=>'youemail@qq.com','パスワード'=>'(あなたのパスワード'),
);
ファイルコードを添付しましたが、送信メールアドレスを変更しましたので、お役に立てましたらご自身で申請してください。
電子メールを送信するための PHP のオンライン バージョンは多数あります。自分に合ったものを見つけてください。
http://www.bkjia.com/PHPjc/477836.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/477836.html技術記事原則: まず、Tencent の 126、163、Sina、Yahoo、Google などの多数のメール アカウントを申請します。2 番目: メールを送信したいメーリング リストを収集します。