在Laravel 5.4中发送邮件

时间:2018-06-27 21:21:22

标签: php laravel email smtp

我正在尝试在Laravel 5.4中发送电子邮件,但始终收到错误消息“ 500内部服务器错误”

我想使用AJAX请求将电子邮件发送到控制器,然后从那里发送我想要的电子邮件。

这是我的.env文件

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=abdul.elah.js@gmail.com
MAIL_PASSWORD="My Email Password"
MAIL_ENCRYPTION=tls

我的ajax请求

$('#form').on('submit', function(e) {
  e.preventDefault();
  e.stopPropagation();
  let data = $('#form').serialize();
  let name = $('input[name=name]').val();
  let phone = $('input[name=phone]').val();
  let message = $('textarea[name=message]').val();
  $.post('/create', data, function(data, textStatus, xhr) {
    console.log(textStatus);
    if (data.lang == '/en') {
      $('.notification').css('left', '15px');
      window.setTimeout(function() {
        $('.notification').css('left', '-350px');
      }, 5000);
    } else {
      $('.notification').css('right', '15px');
      window.setTimeout(function() {
        $('.notification').css('right', '-350px');
      }, 5000);
    }
    $("input[name=name]").val('');
    $("input[name=phone]").val('');
    $("textarea[name=message]").val('');
  });
})

我的web.php

Route::post('create', 'EnquiryController@send');

我的EnquiryController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Response;
use \App\Mail\Enquiry;
use Mail;

class EnquiryController extends Controller
{

     public function send() {

       // I tried this way and didn't work so i tried the one beneath
      // Mail::to('abdul.elah.js@gmail.com')->send('emails.enquiry');

      Mail::send('emails.enquiry', [], function($message) {
        $message->to('abdul.elah.js@gmail.com')->subject('Test');
        $message->from('abdul.elah.js@gmail.com', 'Abdul Elah');
      });

      return response()->json([ 'message' => 'Message Sent Successfully' ]);

    }
}

我在<h1> Hello World </h1>中有一个带有resources/views/emails/enquiry.blade.php的简单html。

我的问题是浏览器不断记录500错误,而没有任何可能对调试有用的数据。

1 个答案:

答案 0 :(得分:1)

问题很简单,我没有重新启动服务器,猜测我在编辑.env文件后必须这样做