laravel 无法使用用户名“apikey”在SMTP服务器上进行身份验证

gstyhher  于 2023-04-07  发布在  其他
关注(0)|答案(5)|浏览(173)

我在laravel 6中尝试通过sendgrid发送邮件时遇到此错误:

Failed to authenticate on SMTP server with username "apikey" using 2 possible authenticators. Authenticator LOGIN returned Expected response code 250

my .env:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=***** (my key copied from sendgrid)
MAIL_ENCRYPTION=tls
neekobn8

neekobn81#

我遇到了同样的问题,我通过在Base64中编码APIKEY来解决它。
这里有更多的帮助:https://sendgrid.com/docs/API_Reference/SMTP_API/getting_started_smtp.html#-Sending-a-test-SMTP-email-with-Telnet

bihw5rsg

bihw5rsg2#

如果您最近刚刚编辑了.env文件,则更改不会应用于配置。
php artisan serve上运行时,退出服务器重启,配置会自动更新。
我正在运行xampp server on development,在我的情况下,我需要在控制台中执行以下命令来应用对config的更改:

php artisan config:clear
php artisan config:cache

不需要更改端口,我的.env设置是相同的:

MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD=<your api key from sendgrid>
MAIL_ENCRYPTION=tls

我省略了MAIL_FROM_ADDRESSMAIL_FROM_NAME,因为我的目的是为了我们公司的网站联系表单,并且我希望邮件发件人和电子邮件是访客或客户电子邮件
如果您希望始终从同一封电子邮件发送,请填充这些变量。
这是sendgrid使用Laravel mailables https://sendgrid.com/docs/for-developers/sending-email/laravel/的官方文档

xienkqul

xienkqul3#

花了28个小时解决这个问题后,解决方案是将端口更改为2525,现在它正在工作。您不需要更改或编码base64。
使用以下设置。

MAIL_MAILER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=2525
MAIL_USERNAME=apikey
MAIL_PASSWORD=sendgrid_apikey
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=noreply@example.com
MAIL_FROM_NAME="${APP_NAME}"
6ioyuze2

6ioyuze24#

在SendGrid上将我的服务器的公共IP地址列入白名单是我所需要的。

uxhixvfz

uxhixvfz5#

我也遇到了同样的问题,我发现了问题。
Mailgun暂时禁用我的帐户由于挂起每月发票付款。这就是为什么我收到该错误。
因此,您应该检查一次您的邮件服务/帐户状态。

相关问题