1

我有 Laravel 5.2 全新安装。

我做了以下工作:

  1. 我已经设置了我的.env文件 MAIL_DRIVER=mandrill SECRET=my_mandrill_api_key
  2. 我已经安装了 Guzzle ( https://github.com/guzzle/guzzle )
  3. 我已经在视图中设置了我的电子邮件(https://github.com/laravel/laravel/blob/5.0/resources/views/emails/password.blade.php
  4. 我已经修复了证书问题(PHP cURL 错误代码 60

因此,似乎一切都正确完成。

当我填写电子邮件以重置密码并按发送密码重置链接按钮时,我收到以下错误

服务器错误:POST https://mandrillapp.com/api/1.0/messages/send-raw.json导致 500 Internal Server Error响应:{"status":"error","code":-1,"name":"ValidationError","message":"You must specify a key value"}

我检查了我在 Mandrill ( https://mandrillapp.com/settings/api ) 中的日志,我的操作没有日志。

从 Mandrill 的错误中,我知道它没有获取 api 密钥,所以由于某种原因,api 密钥和其他值没有传递给 Mandrill api。

问题:有什么遗漏/错误?

注意:现在我正在本地环境中构建应用程序。我的本地环境 Windows 10/Bitnami WAMP 堆栈 7/我也在使用 Mandrill API。

在此处输入图像描述

4

1 回答 1

3

如果您使用 Mandrill 驱动程序,则必须MANDRILL_SECRET在 .env 文件中设置。

其他设置MAIL_HOSTMAIL_PORT用于其他驱动程序。

请参阅此处有关使用 Mandrill 驱动程序的文档。它提到你应该设置 Mandrill 键,config/services.php但你真的应该使用环境变量来设置它,所以如果你自定义了文件,将它改回

'mandrill' => [
    'secret' => env('MANDRILL_SECRET'),
],

然后您将能够MANDRILL_SECRET从 .env 文件中读取值。

因此,在您的 .env 文件中,您将拥有;

MAIL_DRIVER=mandrill
MANDRILL_SECRET=your_mandrill_key_here
于 2015-12-24T14:59:08.210 回答