Php 未发送Laravel 5密码重置电子邮件
我正在尝试在我的Laravel 5.1应用程序上重置密码。我已经按照文档()来完成这项工作。但是,每当我点击我的Php 未发送Laravel 5密码重置电子邮件,php,email,authentication,laravel-5,Php,Email,Authentication,Laravel 5,我正在尝试在我的Laravel 5.1应用程序上重置密码。我已经按照文档()来完成这项工作。但是,每当我点击我的/password/email/上的“重置密码”按钮时,就不会发送任何电子邮件 我故意输入了不正确的电子邮件,我收到了相应的错误,但是当我输入正确的电子邮件时,没有发送任何电子邮件,也没有收到任何类型的邮件或任何电子邮件 我查看了我的数据库,它看起来确实像是一个密码重置令牌正在创建,只是没有发送电子邮件 我的电子邮件配置工作正常,因为我的应用程序的其他部分可以正常发送电子邮件,只有这一
/password/email/
上的“重置密码”按钮时,就不会发送任何电子邮件
我故意输入了不正确的电子邮件,我收到了相应的错误,但是当我输入正确的电子邮件时,没有发送任何电子邮件,也没有收到任何类型的邮件或任何电子邮件
我查看了我的数据库,它看起来确实像是一个密码重置令牌正在创建,只是没有发送电子邮件
我的电子邮件配置工作正常,因为我的应用程序的其他部分可以正常发送电子邮件,只有这一部分不发送电子邮件。任何帮助都将不胜感激,因为我不知道还有什么需要检查的
迈克尔
routes.php:
`
password.blade.php:
<form id="contact-form" class="contact-section" method="POST" action="/password/email">
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
<span class="pre-input"><i class="fa fa-envelope-o"></i></span>
<input class="name plain buffer" type="email" name="email" placeholder="Email" value="{{ old('email') }}">
<input id="send" class="plain button yellow" type="submit" value="Reset Password">
@foreach($errors->all() as $error)
<font size="3" color="red">{{ $error }}</font>
@endforeach
</form>
Click here to reset your password: {{ url('password/reset/'.$token) }}
更新
我已经在postEmail功能中添加了日志
public function postEmail(Request $request)
{
$this->validate($request, ['email' => 'required|email']);
$response = Password::sendResetLink($request->only('email'), function (Message $message) {
$message->subject($this->getEmailSubject());
Log::info('Password Reset Execute -1 '); //Does work here
});
switch ($response) {
case Password::RESET_LINK_SENT:
return redirect()->back()->with('status', trans($response));
case Password::INVALID_USER:
return redirect()->back()->withErrors(['email' => trans($response)]);
}
Log::info('Password Reset Execute - 2'); //Will not work here
}
如果问题的发件人无效,请确保您传递了正确的发件人
$message->from('hello@app.com', 'Your Application');
我在.env中添加了这些,密码重置又开始工作了
MAIL_FROM_ADDRESS=xx@xx.xx
MAIL_FROM_NAME=xxxx
请同时发布您的电子邮件视图的内容。你应该在
resources/views/emails/password.blade.php
@maiorano84中有一个文件,我刚刚添加了这个文件,但是我所做的一切都是直接从Laravel站点复制和粘贴代码的。这个文件以前不在那里吗?因为Auth需要该文件的存在才能发送电子邮件。另外,你是在宅地里还是在当地的虚拟机里?或者这是在公共服务器上?最后,您在config/mail.php
和.env
文件下的邮件设置是什么?@maiorano84是的,我已经创建了电子邮件视图,并且位于正确的位置,尽管我之前尝试过运行,当然它会抛出一个错误,即找不到该视图。我目前在DigitalOcean的公共虚拟机上托管了这个。我的邮件配置在config/mail.php
下,代码为:'driver'=>env('mail\u driver','mandrill'),
您是否收到任何错误,或者只是电子邮件没有发送。你能检查一下laravel.log吗?我最后在config/mail.php文件
中找到并设置了全局设置,因为我不想编辑一个laravel文件并在编写器更新时丢失它。谢谢你的帮助,米娜!你需要帮忙吗?此外,更新不应更改您的应用程序文件。只有供应商文件。我找到了,一切正常。我一直在使用的文件是一个供应商文件-vendor/laravel/framework/src/illighte/Foundation/Auth/ResetsPasswords.php
This works。对于Laravel5.4,默认值不随这两个选项一起提供。在config/mail.php
中,它被设置为hello@example.com
。
MAIL_FROM_ADDRESS=xx@xx.xx
MAIL_FROM_NAME=xxxx