我希望在laravel 4.1中记录每个发送的电子邮件的SMTP事务。
例如,当我使用以下代码发送电子邮件时:
Mail::send('emails.any_view', $data, function($message) use ($user) {
$message->from('server@example.com', 'PHP Code');
}我希望看到这样的情况:
[Resolving gmail-smtp-in.l.google.com...]
[Contacting gmail-smtp-in.l.google.com [173.194.64.27]...]
[Connected]
220 mx.google.com ESMTP zd4si6046704obb.40 - gsmtp
EHLO Network-Tools.com
250-mx.google.com at your service, [67.222.132.193]
VRFY test
252 2.1.5 Send some mail, I'll try my best zd4si6046704obb.40 - gsmtp
RSET
250 2.1.5 Flushed zd4si6046704obb.40 - gsmtp
EXPN test
502 5.5.1 Unimplemented command. zd4si6046704obb.40 - gsmtp
RSET
250 2.1.5 Flushed zd4si6046704obb.40 - gsmtp
MAIL FROM:<admin@Network-Tools.com>
250 2.1.0 OK zd4si6046704obb.40 - gsmtp
RCPT TO:<test@gmail.com>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://support.google.com/mail/bin/answer.py?answer=6596 zd4si6046704obb.40 - gsmtp
[Address has been rejected]
RSET
250 2.1.5 Flushed zd4si6046704obb.40 - gsmtp
QUIT
221 2.0.0 closing connection zd4si6046704obb.40 - gsmtp
[Connection closed]我真的不关心这是在日志文件中还是在需要时可以直接转储的变量中。有人知道我如何访问这些信息吗?
我想我越来越接近我的答案了。如果我将app/config/mail.php中的加密替换为无效的内容,我会收到如下错误消息:
Swift_TransportException期望响应代码220,但得到代码"500",消息为"500 5.5.1未知或未实现的命令“
我需要一种访问响应代码的方法,即使它们不会产生错误。
发布于 2014-07-30 23:13:52
Laravel Mail本身并没有提供这些细节。
只有日志功能,它会将所有电子邮件写入日志文件,而不会将它们发送给收件人。主要用于调试和邮件内容验证。
Mail::send()使用配置的邮件守护进程,该守护进程是您的服务器或远程服务器。
如果您使用Gmail等远程服务器作为SMTP服务器,则无法访问这些日志详细信息。
如果是您自己的服务器,请转到配置的日志目录并捕获相关的日志文件。
确定文件后,使用PHP或tail -f /var/log/maillog读取该文件。
echo file_get_contents('/var/log/maillog'); :)
发布于 2018-02-20 14:36:48
我也收到了同样的错误..当我在mail.php中更改EMAIL_ENCRYPTION时,它工作得很好。它是'encryption‘邮件环境(’MAIL_ENCRYPTION‘,'tps'),在我将它改为'encryption’=> env('MAIL_ENCRYPTION','')之前,
https://stackoverflow.com/questions/25040057
复制相似问题