2017-02-27 35 views
0

好吧,我目前正在使用Mandrill发送电子邮件。 我假设这是不是的问题。这个测试路线,例如火灾罚款。Laravel 5.2身份验证脚手架重置密码电子邮件不烧 - 排队?

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()也工作正常。因此,我所有的队列处理程序和邮件环境变量都工作正常。 (我可以在Mandrill看到这两封电子邮件)。

所以我的问题是密码重置功能,我已经安装了使用Laravel 5.2 Auth脚手架。

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

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

然后我看看源代码,稍微有点迷路,需要帮助!

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

公共函数sendResetLinkEmail(请求$请求) { $这 - > 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

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

'from' => [ 
    'address' => '[email protected]', 
    'name' => 'My site', 
], 

而这个域是在你的Mandrill列入白名单的域名?

+0

谢谢!我看了很多东西,甚至没有看到这个!它被设置为空,希望它抛出一个错误! –

相关问题