php群发邮箱求助

511
@Ta 2020-11-19 26264点击
研究了两天了,群发邮箱不行,单独一个发可以,2500个左右,试过了while循环间隔1秒,用后台执行防止超时,循环里面的写入txt都会执行,就邮箱发送不执行一样。教程也是找了好几天也没帮助多大,哪位有现成的或者指点一二呀
回复列表(16|显示机器人聊天)
  • @Ta / 2020-11-19 / /
    一次发100个,发了的sql变1
    。。。。。。
  • @Ta / 2020-11-19 / /
    添加多个收件人
    分批发送
  • 511
    @Ta / 2020-11-19 / /
    @echo醉老仙,while循环分组,每组100个,然后再一组一组的发么
  • @Ta / 2020-11-19 / /

    我记得前几天有人说了,这东要在终端执行,还有就是用第三方的邮箱,我记得都短时间内发不了几千封,多了肯定要被禁;

    终端执行就没有超时一说,什么时候执行完,什么时候进程退出。如果用laravel,简单用artisan新建一个command就行,tp不清楚,应该也有类似的吧。

    就一个个发,我2s发一个,2500,能发多久?哪用这么纠结。

    哪怕没用larvel或者tp,就一个php单文件,里面连接数据库,查出没发送的人,一个个发送。用php index.php慢慢发,也就行了,不要想那么复杂,毕竟才2500...
    红米Note7 高配版(黑色)

  • @Ta / 2020-11-19 / /

    唯一可能成为你瓶颈是就是使用第三方的邮箱来发送,短时间发多了,肯定给你封
    红米Note7 高配版(黑色)

  • @Ta / 2020-11-19 / /
    @511,不要循环那么多,邮箱入库,发件标记,前端循环执行,轻轻松松
  • 511
    @Ta / 2020-11-19 / /
    @echo醉老仙,主要是邮箱发不出😂能不能帮忙写个示范
  • @Ta / 2020-11-19 / /
    @511
    3610674900_jb51.rar(7.52 KB)
    我用的这个phpmail类

    require 'phpmailer/class.phpmailer.php';
    try {
    $mail = new PHPMailer(true); 
    $mail->IsSMTP();
    $mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
    $mail->SMTPAuth   = true;                  //开启认证
    $mail->Port       = 端口;  
    $mail->Host       = 邮件服务器;
    $mail->Username   = 用户邮箱;
    $mail->Password   = 用户密码;
    //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could  not execute: /var/qmail/bin/sendmail ”的错误提示
    $mail->AddReplyTo(回复邮箱,名称);//回复地址
    $mail->From       = 回复邮箱;
    $mail->FromName   = 名称;
    foreach($result_mails as $index){//循环收件人数组,添加多个收件人
    $mail->AddAddress('收件邮箱');
    };
    $mail->Subject  = "这是一封测试邮件";
    $mail->Body = "<p>这是一封测试邮件</p>";
    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
    $mail->WordWrap   = 80; // 设置每行字符串的长度
    //$mail->AddAttachment("f:/test.png");  //可以添加多个附件,同上
    $mail->IsHTML(true); 
    $mail->Send();
    echo '邮件已发送';
    } catch (phpmailerException $e) {
    echo "邮件发送失败:".$e->errorMessage();
    }

    使用qq,阿里云,163等等邮箱,默认25端口被屏蔽可以考虑使用587端口,还是不行就使用465,邮件服务器写成ssl://smtp.xxx.com

    后端一直循环就要漫长的等待,用分批发送,前端循环
  • 511
    @Ta / 2020-11-19 / /
    @echo醉老仙,好的,谢啦,我试一下
  • 511
    @Ta / 2020-11-19 / /
    @echo醉老仙,文件损坏了吧😂解压不了
  • 511
    @Ta / 2020-11-19 / /
    @无道,好的,126邮箱的,我也估计会被限制
  • @Ta / 2020-11-20 / /
    @511,好像是,你用其他的也行,都差不多
  • @Ta / 2020-11-20 / /
  • 511
    @Ta / 2020-11-20 / /
    @echo醉老仙,<?php

    require 'phpmailer/class.phpmailer.php';
    try {
    $mail = new PHPMailer(true); 
    $mail->IsSMTP();
    $mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
    $mail->SMTPAuth   = true;                  //开启认证
    $mail->Port       = 465;  
    $mail->Host       = ssl://smtp.126.com;
    $mail->Username   = [email protected];
    $mail->Password   = 邮箱密码;
    //$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could  not execute: /var/qmail/bin/sendmail ”的错误提示
    $mail->AddReplyTo([email protected],骁亿);//回复地址
    $mail->From       = [email protected];
    $mail->FromName   = 骁亿;
    foreach($result_mails as $index){//循环收件人数组,添加多个收件人
    $mail->AddAddress('[email protected]');
    };
    $mail->Subject  = "这是一封测试邮件";
    $mail->Body = "<p>这是一封测试邮件</p>";
    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
    $mail->WordWrap   = 80; // 设置每行字符串的长度
    //$mail->AddAttachment("f:/test.png");  //可以添加多个附件,同上
    $mail->IsHTML(true); 
    $mail->Send();
    echo '邮件已发送';
    } catch (phpmailerException $e) {
    echo "邮件发送失败:".$e->errorMessage();
    }

    //使用qq,阿里云,163等等邮箱,默认25端口被屏蔽可以考虑使用587端口,还是不行就使用465,邮件服务器写成ssl://smtp.xxx.com

    大佬,帮忙看下我这样访问空白页面,那个邮箱类我也放进来了,邮箱密码也没错的。
  • @Ta / 2020-11-20 / /
    @511,你这php0基础

    <?php
    require 'phpmailer/class.phpmailer.php';
    try {
    	$mail = new PHPMailer(true); 
    	$mail->IsSMTP();
    	$mail->CharSet='UTF-8'; //设置邮件的字符编码,这很重要,不然中文乱码
    	$mail->SMTPAuth   = true;                  //开启认证
    	$mail->Port       = 465;  
    	$mail->Host       = 'ssl://smtp.126.com';
    	$mail->Username   = '[email protected]';
    	$mail->Password   = '邮箱密码';
    	//$mail->IsSendmail(); //如果没有sendmail组件就注释掉,否则出现“Could  not execute: /var/qmail/bin/sendmail ”的错误提示
    	$mail->AddReplyTo('[email protected]','骁亿');//回复地址
    	$mail->From       = '[email protected]';
    	$mail->FromName   = '骁亿';
    	/*
    	foreach($result_mails as $index){//循环收件人数组,添加多个收件人
    		$mail->AddAddress($index);
    	};
    	*/
            //多个收件人,一行一个
    	$mail->AddAddress('[email protected]');
    	$mail->AddAddress('[email protected]');
    	
    	$mail->Subject  = "这是一封测试邮件";
    	$mail->Body = "<p>这是一封测试邮件</p>";
    	$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; //当邮件不支持html时备用显示,可以省略
    	$mail->WordWrap   = 80; // 设置每行字符串的长度
    	//$mail->AddAttachment("f:/test.png");  //可以添加多个附件,同上
    	$mail->IsHTML(true); 
    	$mail->Send();
    	echo '邮件已发送';
    } catch (phpmailerException $e) {
    	echo "邮件发送失败:".$e->errorMessage();
    }
    
  • 511
    @Ta / 2020-11-20 / /
    @echo醉老仙,谢啦大佬,万分感谢
添加新回复
回复需要登录