Home Backend Development PHP Tutorial PHP implements mass mailing machine_PHP tutorial

PHP implements mass mailing machine_PHP tutorial

Jul 14, 2016 am 10:07 AM
php principle accomplish supply Sina Apply of Tencent Google mail Mail Yahoo

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
$senderListConf = array(
//Sohu Mailbox
array('Host'=>'smtp.sohu.com','Username'=>'youemail@sohu.com','Password'=>'yourpassword'),
//Yahoo Mail
array('Host'=>'smtp.mail.yahoo.com','Username'=>'youemail@yahoo.cn','Password'=>'yourpassword'),
//163 Email www.2cto.com
array('Host'=>'smtp.163.com','Username'=>'youemail@163.com','Password'=>'yourpassword'),
//126 Email
array('Host'=>'smtp.126.com','Username'=>'youemail@126.com','Password'=>'yourpassword'),
//qq mailbox
array('Host'=>'smtp.qq.com','Username'=>'youemail@qq.com','Password'=>'yourpassword'),
//Google Mail
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.

www.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...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Have Crossplay?
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

gate.io registration tutorial gate.io registration tutorial Mar 31, 2025 pm 11:09 PM

This article provides a detailed Gate.io registration tutorial, covering every step from accessing the official website to completing registration, including filling in registration information, verifying, reading user agreements, etc. The article also emphasizes security measures after successful registration, such as setting up secondary verification and completing real-name authentication, and gives tips from beginners to help users safely start their digital asset trading journey.

gate.io latest registration tutorial for beginners gate.io latest registration tutorial for beginners Mar 31, 2025 pm 11:12 PM

This article provides newbies with detailed Gate.io registration tutorials, guiding them to gradually complete the registration process, including accessing the official website, filling in information, identity verification, etc., and emphasizes the security settings after registration. In addition, the article also mentioned other exchanges such as Binance, Ouyi and Sesame Open Door. It is recommended that novices choose the right platform according to their own needs, and remind readers that digital asset investment is risky and should invest rationally.

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

How to get the return code when email sending fails in Laravel? How to get the return code when email sending fails in Laravel? Apr 01, 2025 pm 02:45 PM

Method for obtaining the return code when Laravel email sending fails. When using Laravel to develop applications, you often encounter situations where you need to send verification codes. And in reality...

In Laravel, how to deal with the situation where verification codes are failed to be sent by email? In Laravel, how to deal with the situation where verification codes are failed to be sent by email? Mar 31, 2025 pm 11:48 PM

The method of handling Laravel's email failure to send verification code is to use Laravel...

Explain the match expression (PHP 8 ) and how it differs from switch. Explain the match expression (PHP 8 ) and how it differs from switch. Apr 06, 2025 am 12:03 AM

In PHP8, match expressions are a new control structure that returns different results based on the value of the expression. 1) It is similar to a switch statement, but returns a value instead of an execution statement block. 2) The match expression is strictly compared (===), which improves security. 3) It avoids possible break omissions in switch statements and enhances the simplicity and readability of the code.

See all articles