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发送邮件的网上的好多版本,找到适用你的那个就行了。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文提供了一份详细的Gate.io新手注册教程,涵盖了从访问官网到完成注册的每一个步骤,包括填写注册信息、进行验证、阅读用户协议等。文章还强调了注册成功后的安全措施,如设置二次验证和完成实名认证,并给出了新手提示,帮助用户安全地开启数字资产交易之旅。

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

这篇文章为新手提供了详细的Gate.io注册教程,指导他们逐步完成注册流程,包括访问官网、填写信息、身份验证等,并强调了注册后的安全设置。此外,文章还提到了币安、欧易和芝麻开门等其他交易所,建议新手根据自身需求选择合适的平台,并提醒读者数字资产投资具有风险,应理性投资。

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

Laravel邮件发送失败时的退信代码获取方法在使用Laravel开发应用时,经常会遇到需要发送验证码的情况。而在实�...

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

本文提供了一份详细的Gate.io网页版最新注册教程,帮助用户轻松入门数字资产交易。教程涵盖了从访问官网到完成注册的各个步骤,并强调了注册后的安全设置。文章还简单介绍了币安、欧易和芝麻开门等其他交易平台,建议用户根据自身需求选择合适的平台,并注意投资风险。
