好的,所以我目前正在使用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
部分有关,这里的代码完全让我失望。
非常感谢任何帮助!
答案 0 :(得分:1)
您是否有config/mail.php
中的电子邮件设置默认设置?
'from' => [
'address' => 'info@domain.tld',
'name' => 'My site',
],
此域名是否在您的Mandrill白名单中?