无法使用Laravel内置邮件发送密码重置电子邮件

时间:2017-09-18 21:26:49

标签: php laravel laravel-5 email-integration

我一直试图收到Laravel发送的电子邮件,但是没有成功。我一直在使用宅基地进行本地测试,并且在实时Linux服务器环境中没有运气。

我已从.env文件中删除了电子邮件设置。并直接在我的配置/邮件文件中添加设置。

到目前为止,我已经尝试了Office 365设置,gmail和最终的maligun,其中没有一个发送电子邮件。

我的设置如下。

'driver' => env('MAIL_DRIVER', 'mailgun'),
'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
'port' => env('MAIL_PORT', 587),
'from' => [
    'address' => env('MAIL_FROM_ADDRESS', 'postmaster@sandbox********099b827475b585029.mailgun.org'),
    'name' => env('MAIL_FROM_NAME', 'Test account'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('postmaster@sandbox****************099b827475b585029.mailgun.org'),
'password' => env('********************'),

我通过密码/重置完成密码重置过程,它表示密码重置链接已成功发送但永远不会发送,mailgun日志确认没有发送电子邮件,令牌在password_reset表中更新

我ssh到家园并测试使用curl通过mailgun发送电子邮件,这很有效。

如果我将邮件驱动程序设置为SMTP,我仍会遇到同样的问题。

将驱动器设置为' log'日志文件显示电子邮件模板等。

任何帮助将不胜感激。

感谢

1 个答案:

答案 0 :(得分:2)

您使用的环境是什么?本地还是生产?

您使用的是哪种电子邮件? Gmail或测试邮件如mailtrap?

如果gmail确实从设置中激活了smtp?请提供更多信息。

更新

让我们测试其他方法,看看它是否有任何差异:

转到您的路线文件web.php并对此进行评论:

// Auth::routes();

现在添加以下路线:

// Authentication routes
Route::get('/login',['as'=>'login', 'uses' => 'Auth\LoginController@showLoginForm']);
      Route::post('/login', ['uses'=>'Auth\LoginController@login']);
      Route::get('/logout',['as'=>'logout', 'uses'=>'Auth\LoginController@logout']);
      Route::get('/register', ['as' => 'register', 'uses' => 'Auth\RegisterController@showRegisterForm']);
      Route::post('password/email', ['as'=>'password.email', 'uses'=>'Auth\ForgotPasswordController@sendResetLinkEmail']);
      Route::get('password/reset', ['as'=>'password.request', 'uses'=>'Auth\ForgotPasswordController@showLinkRequestForm']);
      Route::post('password/reset', ['as'=>'password.request', 'uses'=>'Auth\ResetPasswordController@reset']);
      Route::get('password/reset/{token}', ['as'=>'password.reset', 'uses'=>'Auth\ResetPasswordController@showResetForm']);
      Route::post('logout', ['as'=>'logout', 'uses'=>'Auth\LoginController@logout']);

尝试看看它是否有效。