如何通过SMTP协议获取发送电子邮件的结果?

everybody, I am working on Email system to send emails via SMTP protocol with PHP, everything goes fine and now I can send messages without a problem, I have tow problems Actually and I hope I will find a solution, 1 - I send email to users using a phpmailer library, but I can not control and get the result of sending email because I send about 10 emails at one SMTP connection. this is my send code

 $mail = new PHPMailer;
 $froms=$respu['froms'];    
 $mail->Timeout = 3600;    
     $mail->SMTPDebug = 2;                            // Enable verbose debug output
    $mail->isSMTP();                                 // Set mailer to use SMTP
    $mail->Host = $respu['server'];                              // Specify main and backup SMTP servers
    $mail->SMTPAuth = $respu['authentication'];                    // Enable SMTP authentication
    $mail->Username = $respu['username'];                    // SMTP username
    $mail->Password = $respu['password'];                         // SMTP password
    $mail->SMTPSecure = $respu['security'];                    // Enable TLS encryption, `ssl` also accepted
    $mail->Port = $respu['port'];                             // TCP port to connect to
$mail->SetFrom($respu['username'],$froms);  
$mail->AddAddress($to);



    $mail->Subject = $subject;
    $mail->MsgHTML($message);



    if(!$mail->Send()) {
        //$errors=$mail->getSMTPInstance()->getError();
        $date=date('Y-m-d h:i');
        echo  $msg= "Message Not  Sent: to $to " . $mail->ErrorInfo;
        $date=date('Y-m-d h:i');

        $sql="insert into log (log_text,user_email,log_time,status)values ('$msg','$to','$date',0) ";
     $this->query_return($sql);
        exit();
    } else {$date=date('Y-m-d h:i');


         $sql="insert into log (log_text,user_email,log_time,status)values ( 'Message Sent Successfully ','$to','$date',1) ";
 $this->query_return($sql);
    }

the if(!$mail->Send()) condition return true every time even if the email is wrong . it working like to test if the SMTP connection is done or not, I want to know if the email received by users or not.

my second problem is, I have more than 3000 mail address and I want to send email to them at the same time, what is happening is the procedure take a long time and I have to wait for a long time to finish it, how can I do it faster.

duanlang1531
duanlang1531 您可以谷歌搜索“PHP检查是否收到电子邮件”,你会发现一些建议。但是,除了使用Mailchimp,mailgun等类似的邮件服务之外,我还没有找到防弹方式。
5 个月之前 回复
duangua6912
duangua6912 谢谢你的回复,但我怎样才能得到每封电子邮件的结果,无论如何都是
5 个月之前 回复
duanhu2414
duanhu2414 从PHP发送电子邮件时,您实际上并没有“发送”电子邮件。所有这一切都是将电子邮件发送到SMTP服务器(这实际上是发送电子邮件)。因此,客户端获得的唯一响应是SMTP服务器是否正确收到了电子邮件,而不是它是否已发送。SMTP服务器将电子邮件放入队列中,并在其自己的时间发送电子邮件。它通常几乎是即时的,但是在你已经从SMTP获得响应之后仍然如此。
5 个月之前 回复

1个回答

For sending to lists, use the mailing list example provided with PHPMailer as a starting point. Also read the wiki article about sending to lists.

For maximum performance, you want to be submitting to a local or nearby mail server, which then takes responsibility for onward delivery. Some messages may fail to be delivered, in which case you will need to rely on bounce handlers; when a message fails to send, it will be returned to the Return-path address, which you can control by setting the Sender property in PHPMailer (by default it uses your From address). Note that as a sender you should never set a return-path header yourself; that's the receiving server's job.

Be warned though: handling bounces is very unpleasant; because bounce messages are fairly "invisible" in normal use, it means that they are extremely variable in quality. For example, it's possible for bounces from some Microsoft Exchange servers to omit the address that the message bounced for! You can handle that scenario (and many other shortcomings of badly-configured mail servers) by using VERP addressing to help you identify original recipient addresses, or even individual messages. However you deal with this, you need to be on very good speaking terms with your mail server. Using an external service to handle sends like this isn't necessarily any better, since they face exactly the same problems, though at least they may deal with much of the unpleasantness of bounce handling.

FYI I run https://smartmessages.net, an email marketing service; it's built around PHPMailer (which is partly why I'm the maintainer), and we can send at about 300 messages/second (using a very good mail server), so decent throughput is entirely possible with PHPMailer.

展开翻译

译文



要发送到列表,请使用以PHPMailer提供的邮件列表示例为起点。 另请阅读有关发送到列表的Wiki文章。</ p>

为了获得最佳性能,您希望提交到本地或附近的邮件服务器,然后邮件服务器负责向前传递。 某些消息可能无法传递,在这种情况下,您将需要依赖于反弹处理程序; 当消息无法发送时,它将返回到 Return-path </ code>地址,您可以通过在PHPMailer中设置 Sender </ code>属性来控制该地址(默认情况下它使用您的< 代码>来自</ code>地址)。 请注意,作为发件人,您应该永远</ strong>自己设置 return-path </ code>标头; 这是接收服务器的工作。</ p>

但请注意:处理弹跳是非常不愉快的; 因为弹跳消息在正常使用中相当“不可见”,这意味着它们的质量非常</ em>变量。 例如,某些Microsoft Exchange服务器的跳出可能会忽略该消息被退回的地址! 您可以使用 VERP寻址<处理该方案(以及配置错误的邮件服务器的许多其他缺点) / a>帮助您识别原始收件人地址,甚至是单个邮件。 无论你如何处理这个问题,你都需要与你的邮件服务器保持良好的对话。 使用外部服务处理这样的发送不一定更好,因为它们面临完全相同的问题,但至少它们可能会处理反弹处理的大部分不愉快。</ p>

仅供参考我运行https://smartmessages.net,一个电子邮件营销服务; 它是围绕PHPMailer构建的(部分原因我是维护者),我们可以发送大约300条消息/秒(使用非常好的邮件服务器),因此PHPMailer完全可以实现良好的吞吐量。</ p>
</ DIV>

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java如何不连smtp,直接发送邮件
-
Android使用SMTP协议发送邮件功能,
-
能不能通过Socket直接发送邮件到接收方的邮件服务器
-
关于smtp邮件转发的问题
-
使用smtp发送邮件的问题
-
phpmailer,发邮件 如何设发送方显示名,发送邮件使用的是exchange的smtp服务器
-
谁搞过SMTP发信中的DKIM签名?
-
关于用UTL_SMTP发送邮件
-
django smtp邮件发送问题
-
SMTP中的邮件发送问题
-
php发送邮件问题(smtp的问题)
-
C++怎样用Windows API改变电子邮件正文文字颜色
-
用smtp发送邮件的问题
-
phpmailer发送邮件提示SMTP server error怎么回事?
-
“我的smtp邮件服务器需要认证”在Outlook中怎么找?
-
C++用SMTP发送邮件(表格)
-
telnet登录smtp服务器的问题
-
关于MFC编写的SMTP邮件服务器与outlook邮件客户端交互的问题
-
Java,163邮箱发送失败问题;com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smt
-
难住我啦!SMTP在网站后台如何配置?用的阿里邮箱
-
学会了这些技术,你离BAT大厂不远了
每一个程序员都有一个梦想,梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司,由于身边的环境等原因,不知道 BAT 等一线互联网公司使用哪些技术?或者该如何去学习这些技术?或者我该去哪些获取这些技术资料?没关系,平头哥一站式服务,上面统统不是问题。平头哥整理了 BAT 等一线大厂的必备技能,并且帮你准备了对应的资料。对于整理出来的技术,如果你掌握的不牢固,那就赶快巩固,如果你还没有涉及,现在...
程序员真是太太太太太有趣了!!!
网络上虽然已经有了很多关于程序员的话题,但大部分人对这个群体还是很陌生。我们在谈论程序员的时候,究竟该聊些什么呢?各位程序员大佬们,请让我听到你们的声音!不管你是前端开发...
史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依旧在使用eclipse或者Myeclipse开发,我想对这些朋友说IDEA 的编译速度很快,人生苦短,来不及解释了,直接上手idea吧。这篇文章每一步搭建过程都测试过了,应该不会有什么差错。本文章还有个比较优秀的特点,就是idea的使用,基本上关于idea的操作都算是比较详细的,所以不用太担心不会撸idea!最后,本文
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
接班马云的为何是张勇?
上海人、职业经理人、CFO 背景,集齐马云三大不喜欢的张勇怎么就成了阿里接班人? 作者|王琳 本文经授权转载自燃财经(ID:rancaijing) 9月10日,张勇转正了,他由阿里巴巴董事局候任主席正式成为阿里巴巴董事局主席,这也意味着阿里巴巴将正式开启“逍遥子时代”。 从2015年接任CEO开始,张勇已经将阿里巴巴股价拉升了超过200%。但和马云强大的个人光环比,张勇显得尤其...
让程序员崩溃的瞬间(非程序员勿入)
今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元测试时 ...
接私活必备的 10 个开源项目!
点击蓝色“GitHubDaily”关注我加个“星标”,每天下午 18:35,带你逛 GitHub!作者 | SevDot来源 | http://1t.click/VE8W...
Spring高级技术梳理
Spring高级技术梳理 序言正文SpringDate部分Spring全家桶之SpringData——预科阶段Spring全家桶之SpringData——Spring 整合Hibernate与Hibernate JpaSpring全家桶之SpringData——Spring Data JPASpring全家桶之SpringData——SpringData RedisSpringBoot部分Sp...
如何在Windows中开启"上帝模式"
原文链接 : https://mp.weixin.qq.com/s?__biz=MzIwMjE1MjMyMw==&amp;mid=2650202982&amp;idx=1&amp;sn=2c6c609ce06db1cee81abf2ba797be1b&amp;chksm=8ee1438ab996ca9c2d0cd0f76426e92faa835beef20ae21b537c0867ec2773be...
飞天智能:阿里云的 AI 落地野心
当下,AI 业界不会否认的一个事实是,AI实力的比拼不再是单点的算法技术能力,而是从底层算法到应用平台的全面AI能力。单纯的算法,只是实验室里的乐趣,唯有结合商业的数据处...
为什么平头哥做芯片如此迅猛?
作者 | 胡巍巍 发自杭州云栖大会 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 2018年10月31日,阿里旗下的平头哥半导体有限公司成立。 如今,平头哥成立不到一年,就已成绩斐然。 2019年9月25日,阿里巴巴旗下半导体公司平头哥,发布含光800芯片。 2019年7月25日,平头哥发布成立后第一个基于RISC-V的处理器IP Core玄铁910。...
分享靠写代码赚钱的一些门路
作者 mezod,译者 josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...
技术人员要拿百万年薪,必须要经历这9个段位
很多人都问,技术人员如何成长,每个阶段又是怎样的,如何才能走出当前的迷茫,实现自我的突破。所以我结合我自己10多年的从业经验,总结了技术人员成长的9个段位,希望对大家的职...
多线程编程是后台开发人员的基本功
这里先给大家分享一个小故事:在我刚开始参加工作的那年,公司安排我开发一款即时通讯软件(IM,类似于 QQ 聊天软件),在这之前我心里也知道如果多线程操作一个整型值是要加锁...
分布式、多线程、高并发都不懂,拿什么去跳槽
当提起这三个词的时候,是不是很多人都认为分布式=高并发=多线程?当面试官问到高并发系统可以采用哪些手段来解决,或者被问到分布式系统如何解决一致性的问题,是不是一脸懵逼?确...
动画:用动画给面试官解释 TCP 三次握手过程
作者 | 小鹿 来源 | 公众号:小鹿动画学编程 写在前边 TCP 三次握手过程对于面试是必考的一个,所以不但要掌握 TCP 整个握手的过程,其中有些小细节也更受到面试官的青睐。 对于这部分掌握以及 TCP 的四次挥手,小鹿将会以动画的形式呈现给每个人,这样将复杂的知识简单化,理解起来也容易了很多,尤其对于一个初学者来说。 学习导图 一、TCP 是什么? TCP(Transmissio...
为什么程序员在学习编程的时候什么都记不住?
在程序员的职业生涯中,记住所有你接触过的代码是一件不可能的事情!那么我们该如何解决这一问题?作者 |Dylan Mestyanek译者 | 弯月,责编 | 屠敏出品 |...
500行代码,教你用python写个微信飞机大战
这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右手有节奏有韵律的朝着同一个方向来回移动起来! 这是史诗级的发明,是浓墨重彩的一笔,是…… 在一阵抽搐后,我结束了游戏,瞬时觉得一切都索然无味,正在我进入贤者模式时,突然想到,如果我可以让更多人已不同的方式体会到这种美轮美奂的感觉岂不美哉? 所以我打开电脑,创建了一个 `plan_game.py`……
2019诺贝尔经济学奖得主:贫穷的本质是什么?
2019年诺贝尔经济学奖,颁给了来自麻省理工学院的 阿巴希·巴纳吉(Abhijit Vinayak Banerjee)、艾丝特·杜芙若(Esther Duflo)夫妇和哈...
linux:最常见的linux命令(centOS 7.6)
最常见,最频繁使用的20个基础命令如下: 皮一下,这都是干货偶,大佬轻喷 一、linux关机命令: 1.shutdown命令安全地将系统关机(推荐)参数说明: [-r] 重启计算器。 [-h] 关机后关闭电源〔halt〕。 [-c] cancel current process取消目前正在执行的关机程序。 [-time] 设定关机〔shutdown〕前的时间。 shutdown -h now ...
相关热词 c# 增加元素 c#控制台简单加法 c# 服务端框架 c# 判断事件是否注册 c#中is和has c# udp 连接超时 c#词典 c#实现排列组合 c# oss 上传 c#判断输入的是否为ip