在laravel中发送邮件-不显示错误并且不发送电子邮件

时间:2020-04-23 08:35:26

标签: laravel email smtp

这里我没有将联系方式存储在数据库中。我只想将联系表单数据发送到邮件中,但是没有收到任何错误,也没有收到邮件。我正在为此使用我的Gmail帐户,并且还在我的Google帐户设置中启用了安全性较低的访问权限。提交表单后,它会出现在同一页面上。该如何处理?

.env文件:-

$exception

控制器:-

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!');
}

emails.contact.blade.php

<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>

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

Sending Mail docs

编辑:对不起,我看到Laravel也允许您使用该方法。

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