【问题标题】:Error Expected response code 250 but got code "550", with message "550 This is a submission only port. You must authenticate before sending mail错误预期响应代码 250 但得到代码“550”,消息“550 这是仅提交端口。您必须在发送邮件之前进行身份验证
【发布时间】:2019-11-29 03:14:32
【问题描述】:

我有安装 laravel 的 centos 服务器。从服务器发送电子邮件时遇到问题。我的 laravel 版本是 5.8.29,PHP 版本是 7.3.6。我正在使用 SMTP 发送电子邮件。伙计们请帮帮我。这是我的代码。

很奇怪,从我系统的本地设置中,我能够发送具有相同 SMTP 详细信息的电子邮件,而当前项目设置具有相同的代码。但是有些电子邮件在生产服务器上没有发送。我已经与 swift mailer 进行了交叉检查,并使用单独的文件进行了测试,仅用于电子邮件发送及其工作。但从实际环境来看是行不通的。

.env 文件

MAIL_DRIVER=smtp
MAIL_HOST=mail.domain.com
MAIL_PORT=587
mail_username=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls

电子邮件应该从环境文件发送

【问题讨论】:

  • 在编辑 .env 值后尝试 php artisan config:clear 并尝试将邮件端口更改为 465、25 或 2525
  • @GhiffariAssamar 谢谢 现在已修复。经过这么多调试后,我才知道凭据详细信息没有从 .env 文件中加载。现在已经修好了。
  • 很高兴听到它:)

标签: laravel centos smtp swiftmailer


【解决方案1】:

如果您想通过 Gmail 发送电子邮件,则需要通过两步验证来验证您的 Gmail 帐户并生成邮件密码。要验证您的 Gmail 帐户,请在验证您的帐户后抛出此链接 enter link description here,请转到“安全性->应用程序密码”生成邮件密码。选择应用程序“邮件”并选择设备“Windows计算机”将生成的密码粘贴到您的.env文件中

您的.env 文件显示如下:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=username
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls

保存.env文件后,使用命令删除项目配置和缓存

php artisan config:cache
php artisan cache:clear

要通过域发送电子邮件,请点击此链接enter link description here

【讨论】:

  • 它现在已修复,正如上面评论中提到的那样,凭据没有从 .env 文件加载。我已经解决了。现在它正在工作。
  • 伟大的@JigneshMistry
猜你喜欢
  • 1970-01-01
  • 2020-11-15
  • 2022-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-10
  • 1970-01-01
  • 2022-01-25
相关资源
最近更新 更多