用laravel(6.x)自带的邮件功能发送邮件,输入一个不存在的邮箱,发送邮件, 主邮箱收到了邮件退信通知,代码中并没有报错?
一般来说收到退信通知的邮件,代码中会不会也报错?
用laravel(6.x)自带的邮件功能发送邮件,输入一个不存在的邮箱,发送邮件, 主邮箱收到了邮件退信通知,代码中并没有报错?
一般来说收到退信通知的邮件,代码中会不会也报错?
程序代码只能知道执行过程中的错误。
SMTP协议,是 TCP/TEXTPLAIN协议。使用telnet就可以模拟过程。
比如:
> telnet smtp.qq.com 25
< 220 xxxxx XMail Smtp QQ Mail Server
> EHLO LOGIN
< 250 xxxx
< 250 xxxx
< 250 xxxx
> AUTH LOGIN
> xxxxx
< 235 Login Success
一次发送邮件的过程就是各种命令的交互。当程序发送邮件时,对方服务器最终返回250,那就表示对方已经接收了这封邮件。至于退信,是在【程序【正确】发送后】的对方服务器的后续处理逻辑,并不在发送邮件这个过程中,所以,是不会报错的。
程序报错只会在连接对方服务器失败、用户名密码错误、发送过程失败(网络不稳定等情况)。
参考链接:
https://blog.csdn.net/okfang6...
https://cloud.tencent.com/dev...
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答585 阅读✓ 已解决
791 阅读
当然,这就跟你在以 QQ 邮箱为例,即使你填了一个不存在的邮箱地址,在你点击发送按钮后的那一刻,你都能看到这个页面。
这就相当于你在代码中调用了发送邮件。
在这个阶段,就是邮件服务商接收到了你的递送请求,就好比你去邮局寄信,这个阶段只是你把信给到了邮递员。
而验证收件人是否存在,就只有等邮递员把这封信送达到目的地址的时候,才能知道这个收件人是否存在。
在这期间,你和邮递员不可能只为你这一封信等待,他还要接受别人的寄信请求,他能做的就是在若干天后,如果没有妥投,就退回来,通知你这封信的收件人不存在或者因为其他原因未能妥投。
那这个通知因为是“异步”的,你自然不会知道,但是你的邮箱是会知道了,会有一封邮件(退信通知)回给你,如果你现在要找个结果,那就可以用
IMAP
协议,去定时扫描你的邮箱,获取新邮件,从而进行判断。😅本来还想看看 QQ 邮箱的退信通知是什么样子的,结果过了一个小时了,还是在投递中。
时隔几个小时,收到了来自
PostMaster#qq.com
的退信邮件,原文在附件中。如前面所说,你可以通过使用 IMAP 协议去定时拉取邮件,来收集退信信息。