首页 > 解决方案 > 预期响应代码为 250,但得到代码“550”,使用 Laravel 7 和 SendGrid 显示消息“550 未经身份验证的发件人不允许”

问题描述

我真的很难弄清楚这一点。我最近开始了一个新的 Laravel 7 项目,我真的很难让 SendGrid SMTP 中继与项目正常工作。

我已经查看了 StackOverflow、SendGrid Docs 和 Google,但我仍在努力寻找可行的解决方案。

我的 .ENV 文件:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.sendgrid.net
MAIL_PORT=587
MAIL_USERNAME=apikey
MAIL_PASSWORD={{apikey from SendGrid}}
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="${APP_NAME}"
MAIL_FROM_ADDRESS=no-reply@galacticdigital.co.za

我的 config/mail.php 文件:

'mailers' => [
        'smtp' => [
            'transport' => 'smtp',
            'host' => env('MAIL_HOST', 'smtp.sendgrid.net'), 
            'port' => env('MAIL_PORT', 587),
            'encryption' => env('MAIL_ENCRYPTION', 'tls'),
            'username' => env('apikey'),
            'password' => env('{{apikey from SendGrid}}'),
            'timeout' => null,
        ],

预期响应代码 250,但得到代码“550”,消息“550 不允许未经身份验证的发件人” 错误消息截图

即使运行后我仍然收到此错误: php artisan cache:clear php artisan config:cache

有没有人可以帮助我了解这里发生了什么以及如何解决它。我仍在忙于学习 Laravel,但我还不是最擅长使用它的。

标签: phplaravelsendgrid

解决方案


apikey您正在请求名为和的 ENV 常量{{apikey from SendGrid}}

它们是值而不是名称。因此在 ENV 文件中找不到它们。

更正以下行:

[   
    // .....
    'username' => env('apikey'),
    'password' => env('{{apikey from SendGrid}}'),
    // .....
]

[   
    // .....
    'username' => env('MAIL_USERNAME'),
    'password' => env('MAIL_PASSWORD'),
    // .....
]

并确保您的 ENV 文件中的 API 凭据是正确的。


推荐阅读