Laravel 5.2 重置密码 + Mandrill
Posted
技术标签:
【中文标题】Laravel 5.2 重置密码 + Mandrill【英文标题】:Laravel 5.2 reset password + Mandrill 【发布时间】:2016-03-30 23:08:59 【问题描述】:我有 Laravel 5.2 全新安装。
我做了以下操作:
-
我已经设置了我的
.env
文件
MAIL_DRIVER=mandrill
SECRET=my_mandrill_api_key
我已经安装了 Guzzle (https://github.com/guzzle/guzzle)
我已在视图中设置了我的电子邮件 (https://github.com/laravel/laravel/blob/5.0/resources/views/emails/password.blade.php)
我已修复证书问题 (PHP cURL error code 60)
所以看起来一切都正确。
当我填写电子邮件重置密码并按发送密码重置链接按钮时,我收到以下错误
服务器错误:
POST https://mandrillapp.com/api/1.0/messages/send-raw.json
导致500 Internal Server Error
回复: "status":"error","code":-1,"name":"ValidationError","message":"你 必须指定一个键值”
我已经检查了我在 Mandrill (https://mandrillapp.com/settings/api) 中的日志,没有记录我的操作。
从 Mandrill 的错误中,我知道它没有获取 api 密钥,所以由于某种原因,api 密钥和其他值没有传递给 Mandrill api。
问题:有什么遗漏/错误?
注意:现在我正在本地环境中构建应用程序。我的本地环境 Windows 10/Bitnami WAMP stack 7/我也在使用 Mandrill API。
【问题讨论】:
message":"你必须指定一个键值,你能添加函数的代码吗? 【参考方案1】:如果您使用 Mandrill 驱动程序,则必须在 .env 文件中设置 MANDRILL_SECRET
。
其他设置MAIL_HOST
、MAIL_PORT
等是为了配合其他驱动使用。
请参阅有关使用 Mandrill 驱动程序的文档here。它提到您应该在 config/services.php
中设置 Mandrill 键,但您应该使用环境变量进行设置,因此如果您自定义了文件,请将其改回
'mandrill' => [
'secret' => env('MANDRILL_SECRET'),
],
然后您将能够从 .env 文件中读取 MANDRILL_SECRET
值。
所以在您的 .env 文件中,您将拥有;
MAIL_DRIVER=mandrill
MANDRILL_SECRET=your_mandrill_key_here
【讨论】:
我是从 .env 文件而不是服务中设置的, 是的,我建议在那里进行更改,只需确保您的 config/services.php 看起来像 mandrill 组的那样。 到目前为止感谢您的回答以上是关于Laravel 5.2 重置密码 + Mandrill的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.2 忘记密码的模式弹出窗口显示 500 内部服务器错误,同时运行 ajax 功能
Laravel 手动生成重置密码令牌:收到错误“此密码重置令牌无效”