Отправка почты в laravel - не отображаются ошибки и не отправляется электронная почта - PullRequest
0 голосов
/ 23 апреля 2020

Здесь я не храню контактные данные в базе данных. Я просто хочу отправить данные контактной формы на почту, но не получаю никакой ошибки, а также не получаю почту. Для этого я использую свою учетную запись Gmail, а также включил менее безопасный доступ в настройках своей учетной записи Google. После отправки формы она появляется на той же странице. Что я должен сделать, чтобы это сработало.

.env file: -

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

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Mail :: send необходимо передать экземпляр объекта Mailable.

Отправка документов по почте

Редактировать: извините, я вижу Laravel позволяет тоже подход.

Кроме того, помните, что если вы используете кеш конфигурации, вам нужно передать его sh после внесения изменений в .env

0 голосов
/ 23 апреля 2020

Вы пропустили name="email" во входном сообщении электронной почты, измените его на

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

Проверка формы не удалась, поскольку она имеет 'email' =>'required|email', но вы не отправляете электронное письмо из-за пропущенного значения имени.

...