php - 预期响应代码为 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,但我还不是最擅长使用它的。
解决方案
apikey
您正在请求名为和的 ENV 常量{{apikey from SendGrid}}
。
它们是值而不是名称。因此在 ENV 文件中找不到它们。
更正以下行:
[
// .....
'username' => env('apikey'),
'password' => env('{{apikey from SendGrid}}'),
// .....
]
到
[
// .....
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
// .....
]
并确保您的 ENV 文件中的 API 凭据是正确的。
推荐阅读
- node.js - Multer 不使用 next-connect 返回 req.body 和 req.file
- javascript - typeerror: app.use() 需要中间件功能修复
- java - 由于库存不足,iPhoneX 的购物车数量已从 10 个减少到 9 个
- spring - 如何通过使用 Postgres 代码的 Flyway 迁移创建 DataJpaTest?
- javascript - HEROKU 错误:ENOENT:没有这样的文件或目录,stat '/app/distpublic/index.html'
- android - 保持DatabaseHelper打开或关闭并在android应用程序上重新打开更好吗?
- firebase - Firebase 用户身份验证管理问题
- javascript - 如何在通过 React useHistory 传递道具时有条件地渲染道具并检查未定义的道具?
- javascript - 如何检查是否为 chrome 启用了本机通知?
- kubernetes - 如何在不同的存储类之间复制 PVC?