Principle:
Be the first to apply for a large number of email accounts, Tencent's 126, 163, Sina, Yahoo, Google, etc. that provide SMTP services
Second: Collect the mailing list you want to send emails to
Third: Traverse the mailing list and send each email
Fourth: Use a scheduled script to run in the background under Linux. I ran it for two days, haha, because I wanted to ensure that everything was sent successfully as much as possible
The principle is very simple, but there are still many problems encountered.
First: I use two methods to solve the problem of email failure. The first is to send a large number of email accounts in sequence until it succeeds. Then after sending 500 emails each time, the sending mailbox list is randomly scattered (to avoid a continuous failure).
I use phpmailer
Enough said, let’s get into the code. Please search and download phpmailer yourself
Entry script: mail_001.php executed by Linux
define('ROOT_PATH',dirname(__FILE__));
require_once 'library/senderApi.php'; //Send email interface
require_once 'config/senderListConf.php'; //Send email account list
//Read text email address
shuffle($senderListConf);
$filename = "data/email.txt";
$fp = fopen($filename,"r");
$contents = fread($fp,filesize($filename));
$list_email=explode("rn",$contents);
$len=count($list_email);
fclose($fp);
//The email content is the content on the web page
$htmlContent = file_get_contents('http://taobao.1080www.com');
// Parameter description (send to, email subject, email content, additional information, user name)
foreach($list_email as $key=>$value)
{
$value = trim($value);
$rs=explode("@",$value);
$user_name = $rs['0'];
smtp_mail($value, 'Autumn hydrating cosmetics_Autumn skin care and skin care_What to do with dry skin in autumn - common sense',$htmlContent, 'http://taobao.1080www.com/', $user_name,$senderListConf, 0);
sleep(3);
if($key%200 == 0 && $key>0)
{
shuffle($senderListConf); //Shuffle the order of sending emails every 200 times
}
}
die('SendingOver.............'."rn");
?>
Encapsulate phpmailer senderApi.php
// Request PHPmailer class file
error_reporting(E_ERROR);
require_once("phpmailer/phpmailer.class.php");
//Write the sending result function
function info_write($filename,$info_log)
{
$info.= $info_log;
$info.="rn";
$fp = fopen ($filename,'a');
fwrite($fp,$info);
fclose($fp);
}
//Send Email function
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 The sending account is wrong............'; // send via SMTP
$mail->Host = $sender_info['Host']; // SMTP servers
$mail->SMTPAuth = true;
$mail->Username = $sender_info['Username'];
$mail->Password = $sender_info['Password'];
$mail->From = $sender_info['Username'];
$mail->FromName = "Taobao Recommendation---TaoBao"; // Sender, such as China Fund Management Network
$mail->CharSet = "UTF-8"; // Specify the character set here!
$mail->Encoding = "base64";
$mail->AddAddress($sendto_email,$user_name); // Recipient email and name
$mail->AddReplyTo("ken@cscsws.com","Taobao Recommendation");
//$mail->WordWrap = 50; // set word wrap
//$mail->AddAttachment("/var/tmp/file.tar.gz");
//$mail->AddAttachment("/home/www/images/zhuanti/qiujibushui/qiujibushui_attache.jpg", "new.jpg");
$mail->IsHTML(true);
$mail->Subject = $subject;
// Email content can be sent directly as html file
$mail->Body = $body;
$mail->AltBody ="text/html";
if($mail->Send())
{
info_write(ROOT_PATH.'/log/'.$batch_no."ok.txt","$user_name sent successfully");
}
else
{
info_write(ROOT_PATH.'/log/'.$batch_no."falied.txt","$user_name failed, sending account ".$sender_info['Username'].", error message $mail->ErrorInfo" );
if($senderListConf[$sender+1])
{
$sender = smtp_mail ($sendto_email, $subject, $body, $extra_hdrs, $user_name,$senderListConf,($sender+1));
} }
}
return $sender;
}
Sending mailing list example senderListConf.php
array('Host'=>'smtp.sohu.com','Username'=>'youemail@sohu.com','Password'=>'yourpassword'),
array('Host'=>'smtp.mail.yahoo.com','Username'=>'youemail@yahoo.cn','Password'=>'yourpassword'),
array('Host'=>'smtp.163.com','Username'=>'youemail@163.com','Password'=>'yourpassword'),
array('Host'=>'smtp.126.com','Username'=>'youemail@126.com','Password'=>'yourpassword'),
array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com','Password'=>'yourpassword'),
array('Host'=>'smtp.gmail.com','Username'=>'youemail@gmail.com','Password'=>'yourpassword'),
//139 Email
array('Host'=>'smtp.139.com','Username'=>'youemail@139.com','Password'=>'yourpassword'),
//qq mailbox
array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com','Password'=>'(yourpassword'),
);
I have uploaded the file code as an attachment, but I have changed the sending email address. If it is useful, apply by yourself.
There are many online versions of PHP for sending emails, just find the one that suits you.
http://www.bkjia.com/PHPjc/477836.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/477836.htmlTechArticlePrinciple: First apply for a large number of email accounts, Tencent's 126, 163, Sina, Yahoo, Google, etc. provided The second step of smtp service: Collect the mailing list you want to send emails to. The third step: go through...