Laravel 5.2 Auth Scaffolding重置密码电子邮件未触发 - 是否排队?

时间:2017-02-27 17:23:16

标签: php laravel email

好的,所以我目前正在使用Mandrill发送电子邮件。 我认为这是问题。例如,该测试路线可以点燃。

 public function email($emailAddress){
        $data = array(
            'email'     => $emailAddress,
            'name'      => 'Test Name'
            );
        $result = Mail::queue('emails.test', $data, function ($message) use ($data){
            $message->from(Config::get('settings.contact_form_from.address'), Config::get('settings.contact_form_from.name'));
            $message->sender(Config::get('settings.contact_form_from.address'), Config::get('settings.contact_form_from.name'));
            $message->to($data['email'], $data['name']);
            $message->subject('Test email to: ' . $data['email']);
        });
        return $this->response($result);
    }

这是使用queue功能。如果调整为Mail::send()也可以正常工作。因此我的所有队列处理程序和邮件env变量都正常工作。 (我可以在Mandrill中看到这两封电子邮件)。

所以我的问题是使用Laravel 5.2 Auth Scaffolding安装的密码重置功能。

所以,路线等一切正常 - 只是没有电子邮件发送。

它可以正确识别用户是否存在(显示正确的错误消息)。

那么我看看源代码并稍微丢失,需要帮助!

如果我在这里查看... ...Illuminate\Foundation\Auth\ResetPasswords.php我可以看到这种方法。

public function sendResetLinkEmail(Request $ request) {     $这 - > validateSendResetLinkEmail($请求);

$broker = $this->getBroker();

$response = Password::broker($broker)->sendResetLink(
    $this->getSendResetLinkEmailCredentials($request),
    $this->resetEmailBuilder()
);
switch ($response) {
    case Password::RESET_LINK_SENT:
        return $this->getSendResetLinkEmailSuccessResponse($response);
    case Password::INVALID_USER:
    default:
        return $this->getSendResetLinkEmailFailureResponse($response);
}

}

如果我在$response休息,我会收到正确发送的回复。所以我认为它与Password::broker部分有关,这里的代码完全让我失望。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您是否有config/mail.php中的电子邮件设置默认设置?

 'from' => [
   'address' => 'info@domain.tld',
   'name' => 'My site',
 ],

此域名是否在您的Mandrill白名单中?