Laravel отправляет электронную почту с общего хостинга cpanel — не удается

Мне нужно отправить письмо с подтверждением любому пользователю, который регистрируется в моем приложении. Моя версия Laravel — 5.4.36. Я использую виртуальный хостинг с cpanel.

Поэтому я создал учетную запись электронной почты через cpanel, которая должна отправлять электронные письма. Вот рекомендуемые настройки cpanel:

Имя пользователя: [email protected]
Пароль: используйте пароль учетной записи электронной почты.
Входящий сервер: mail.mladensblogger.rs

Порт IMAP: 993 Порт POP3: 995

Исходящий сервер: mail.mladensblogger.rs

Порт SMTP: 465

Вот мой .env:

MAIL_DRIVER=smtp
MAIL_HOST=mail.mladensblogger.rs
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=myaccountpass
MAIL_ENCRYPTION=tls

Все выглядит хорошо для меня, вот контроллер, где необходима отправка почты:

RegisterController.php

public function store(Request $request)
{

// ************************** -- RULES -- ***************************

$rules = [
'tbEmail' => 'required|email|unique:users,email',
'tbUser' => 'required|alpha_num|unique:users,user',
'tbPass' => 'required|min:6',
'tbPassConfirm' => 'required|same:tbPass',
'tbNameSurname' => 'required|min:3',
'tbPhone' => 'required|regex:/^[0-9]*$/'
];

// ************************** -- MESSAGES -- ***************************

$messages = [
'required' => 'Polje :attribute je obavezno',
'same' => 'Ponovljena lozinka nije ista kao i lozinka',
'regex' => ':attribute nije u dozvoljenom formatu',
'email' => 'Email nije u dobrom formatu',
'tbPhone.regex' => 'Broj telefona mora biti zapisan brojevima i ne sme sadržati slova',
'tbUser.regex' => 'Korisničko ime mora početi malim slovom, i ne sme imati razmake',
'tbNameSurname.min' => 'Ime nije u ispravnom formatu',
'min' => ':attribute mora imati minimum :min karaktera',
'unique' => ':attribute je već iskorišćen/a'
];

$this->validate($request, $rules, $messages);

$email = $request->get('tbEmail');
$username = $request->get('tbUser');
$pass = $request->get('tbPass');
$passConfirm = $request->get('tbPassConfirm');
$nameSurname = $request->get('tbNameSurname');
$phone = $request->get('tbPhone');

try{
$user = new User(); // Model for saving the user
$user->email = $email;
$user->pass = $pass;
$user->user = $username;
$user->name_surname = $nameSurname;
$user->phone = $phone;

$result = $user->saveWithRegularUserRole();

$verify_user = new VerifyUser();
$result_for_id = $user->getByUserAndPass();
$verify_user->user_id = $result_for_id->id;
$verify_user->token = str_random(40);
$verify_user->create();

//Mail::to($user->email)->send(new VerifyMail($user));

if($result == 1){
return redirect()->route('index')->with('success', 'Uspešno ste se registrovali');}
else{
return redirect()->route('index')->with('error', 'Neuspeh pri registraciji, molimo pokušajte opet!');}
}
catch (\Exception $exception){
\Log::error('Error: ' . $exception->getMessage());
return redirect('/')->with('error', 'Greška pri radu aplikacije, molimo pokušajte ponovo!');
}


}

Вот VerifyMail

class VerifyMail extends Mailable
{
use Queueable, SerializesModels;

public $user;

/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user)
{
$this->user = $user;
}

/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.verifyUser');
}
}

На мой взгляд, который возвращается после сохранения пользователя, если все проходит правильно, показывается успех, в противном случае отображается ошибка. В основном, почта не отправляется, и просмотр показывает ошибку, но когда я комментирую Mail :: toline, показывается успех. У меня нет идей, и я пробовал несколько способов изменить файл .env, может быть, проблема в контроллере?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]