问题描述
我正在使用框架 yii2,当我尝试发送电子邮件时,联系页面出现问题我收到此错误“yii2 Swift_TransportException 预期响应代码 250 但得到代码“550”“即使邮件是正确的
'mailer' => [
'class' => 'yii\swiftmailer\Mailer','useFileTransport' => false,'transport' => [
'class' => 'Swift_SmtpTransport','host' => 'my host','username' => ' my email ','password' => 'my password','port' => '587','encryption' => 'tls',],]
-该网站不在本地主机中 - 当我将电子邮件从我的电子邮件发送到另一个但不是相反时,邮件程序工作正常
请帮帮我
解决方法
问题的本质是邮件服务器返回错误代码 550
以响应 swiftmailer
库的“发送邮件”请求。
因此,您应该查看邮件服务器的日志。
如果访问邮件服务器日志有困难,请注意您在配置中指定的连接设置。
通常,此 550 错误的发生是由于错误指定的 encryption
/ port
设置或邮件服务器的错误配置 smtp
系统(如果您使用自己自定义配置的邮件服务器)。
要进行测试,请尝试通过桌面邮件客户端(如 Thunderbird、Outlook 等)使用相同设置进行连接并发送测试邮件。
,对于联系表单,更好的方式是将邮件从您自己的电子邮件发送到您自己的电子邮件(甚至可能是同一电子邮件)。
此外,添加“返回地址” - Reply-To
标题(正是用户在联系表单中输入的电子邮件)。
因此,您将拥有一组这样的标题:
From: your@domain.com
To: your@domain.com
Reply-To: client@gmail.com
大多数邮件系统的安全政策禁止代表第三方电子邮件发送信件。
即使你成功了,这样的邮件也很有可能被接收方拒绝——因为发件人的电子邮件与发送服务器不匹配(简单地说)。
很可能由于这些原因,您遇到了此错误。
如果您有兴趣,可以在 swiftmailer 中启用登录 - 也许您会在日志中看到有趣的细节:
https://www.yiiframework.com/extension/yiisoft/yii2-swiftmailer/doc/api/2.1/yii-swiftmailer-logger