Laravel 8通过api客户端发送mailgun错误:未经授权的响应:禁止
Posted
技术标签:
【中文标题】Laravel 8通过api客户端发送mailgun错误:未经授权的响应:禁止【英文标题】:Laravel 8 sending mailgun via api Client error: Unauthorized response: Forbidden 【发布时间】:2021-12-21 07:22:19 【问题描述】:我最近将 Laravel 从 5.7.29 升级到了 8.51。多年来,我一直在使用 Mailgun API 发送电子邮件。旧版本的站点仍然可以通过 mailgun 发送,但新版本不断返回此消息:
Client error: `POST https://api.mailgun.net/v3/mg.clstracking.com/messages.mime` resulted in a `401 Unauthorized` response: Forbidden
如果您在欧盟工作并且未能更改服务配置中的 MAILGUN_ENDPOINT,我发现了类似的帖子表明这种响应。服务器和站点都在美国。我已经验证我的 .env 中有正确的设置,并且这些设置已传递到我的 services.php 配置文件中并使用 artisan config:cache 进行缓存。我通过查看 /bootstrap/cache/config.php 验证了这一点,一切都在那里 - 我什至检查了另一个具有相同工作方式的不同域的站点。我什至尝试将我的域和密码硬编码到 services.php 中。
如果我改变了
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
使用我的用户名和密码,我没有收到任何错误,但是没有发送电子邮件,并且检查了 mailgun 上的日志,没有记录。我不知道还能尝试什么。
在环境中我有:
MAIL_MAILER=mailgun
MAILGUN_DOMAIN=mg.mydomain.com
MAILGUN_SECRET=key-##########################
在 config/services.php 中:
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'),
],
在 config/mail.php 中:
'default' => env('MAIL_MAILER', 'mailgun'),
'mailers' => [
'mailgun' => [
'transport' => 'mailgun',
],
],
【问题讨论】:
【参考方案1】:我在使用 gmail 生产的项目中使用此配置
MAIL_MAILER='sendmail'
MAIL_HOST='sendmail.googlemail.com'
MAIL_PORT=587
MAIL_USERNAME='email@gmail.com'
MAIL_PASSWORD="*********"
MAIL_ENCRYPTION='tls'
MAIL_FROM_ADDRESS='email@gmail.com'
MAIL_FROM_NAME="$APP_NAME"
也许对你有帮助。
【讨论】:
感谢格苏!我确实很感激 - 在尝试了一切之后,我在深夜找到了一个带有该选项的帖子,并且现在已经实施了该选项,直到我能够解决问题。它实际上作为备份工作得很好,尽管我更喜欢事务服务器的可靠性。其他人注意:要使用 googlemail,您必须配置“不太安全的应用程序访问”medium.com/@agavitalis/…以上是关于Laravel 8通过api客户端发送mailgun错误:未经授权的响应:禁止的主要内容,如果未能解决你的问题,请参考以下文章