如何解决使用 gmail smtp-relay数据库队列驱动程序
gmail smtp-relay 使用同步驱动程序工作正常,但如果我们将电子邮件排队,则会出现此错误。清除配置、缓存和重新启动队列工作器。在 prod 和 dev 中测试,结果相同
[2021-01-24 20:04:22] production.ERROR: Expected response code 250 but got an empty response {"exception":"[object] (Swift_TransportException(code: 0): Expected response code 250 but got an empty response at /home/****/****/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:448)
想知道这是不是因为序列化而有些东西没有通过这个过程??? 使用 laravel > 8.0 的最新稳定版本。 gmail smtp 的身份验证很好,这是同步驱动程序轻松发送电子邮件的原因。也许队列作业需要超时,这样他们就不会这么快地拦截 gmail?我们的代码也可以使用 sendgrid 很好地工作,例如作为 smtp 中继。谢谢。
解决方法
更新您的 AppServiceProvider.php
在 boot() 中添加这个;
// Fix for SwiftMailer Service;
$_SERVER["SERVER_NAME"] = "your.domain.name";
,
对于smtp-relay.gmail.com的用户,如果您在开发过程中使用localhost/127.0.0.1作为域,您可能需要更改域名以在EHLO
中使用命令开始交易。我通过在我的 DSN 中添加 &local_domain=dev.mydomain.tld
解决了这个问题。
smtp://smtp-relay.gmail.com:587?encryption=tls&local_domain=dev.mydomain.tld&...
对于 SwiftMailer Symfony 包(自 2.4.0 起),您可以设置 local_domain
config parameter:
// config/packages/dev/swiftmailer.yaml
swiftmailer:
...
local_domain: dev.mydomain.tld
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。