laravel 中的邮件发送 - 未显示错误且未发送电子邮件

Mail sending in laravel-not showing errors and not sending email

这里我没有将联系方式存储在数据库中。我只想将联系表格数据发送到邮件,但我没有收到任何错误,也没有收到邮件。为此,我正在使用我的 Gmail 帐户,并且还在我的 google 帐户设置中启用了不太安全的访问。提交表格后,它出现在相同的 page.what 我应该这样做才能工作。

.env 文件:-

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxx@gmail.com
MAIL_PASSWORD=xxxxxxx
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

控制器:-

function sendmail(Request $request)
   {
$this->validate($request,[
'name' =>'required',
'email'=>'required|email',
'phone'=>'required',
'message'=>'required']);

\Mail::send('contact_email',
array(
'name' => $request->get('name'),
'email' => $request->get('email'),                 
'phone' => $request->get('phone'),
'bodyMessage' => $request->get('message'),
), function($message) use ($request)
{
$message->from($request->email);
$message->to('harsha1604gandhi@gmail.com');
});
return back()->with('success', 'Thank you for contact us!');
}

查看:-

<form action="contact" method="POST" class="row">
{{csrf_field()}}
<!-- name -->
<div class="col-md-6">
<input type="text" name="name" class="form-control main" placeholder="Name" required>
</div>
<!-- email -->
<div class="col-md-6">
<input type="email" class="form-control main" placeholder="Email" required>
</div>
<!-- phone -->
<div class="col-md-12">
<input type="text" name="phone" class="form-control main" placeholder="Phone" required>
</div>
<!-- message -->
<div class="col-md-12">
<textarea name="message" rows="15" class="form-control main" placeholder="Your message"></textarea>
</div>
<!-- submit button -->
<div class="col-md-12 text-right">
<button class="btn btn-style-one" type="submit">Send Message</button>
</div>
</form>

emails.contact.blade.php

<h2>Hello Admin,</h2>
You received an email from : {{ $name }}
Here are the details:
<b>Name:</b> {{ $name }}
<b>Email:</b> {{ $email }}
<b>Phone Number:</b> {{ $phone }}
<b>Message:</b> {{ $message }}
Thank You

您在电子邮件输入中缺少 name="email",将其更改为

<div class="col-md-6">
<input type="email" name="email" class="form-control main" placeholder="Email" required>
</div>

您的表单验证失败,因为它有 'email' =>'required|email',但由于缺少名称值,您没有发送电子邮件。

Mail::send 需要传递一个 Mailable 对象的实例。

Sending Mail docs

编辑:抱歉,我看到 Laravel 也允许您的方法。

此外,请记住,如果您正在使用配置缓存,则需要在对 .env 进行更改后刷新它