2015-05-22 4 views
2

У меня проблема с отправкой электронной почты в моем приложении Laravel 5.Каков наилучший способ отправки электронной почты в Laravel 5?


Вот моя почта функция

электронная почта = [email protected]

Mail::send('emails.activation', array(

    'username'=>$user->username, 
    'name'=>$user->name, 
    'code'=>$user->code, 
    'email'=>$user->email 

), 
function($message){ 
    $message->from(env('MAIL_USERNAME'),'Site'); 
    $message->to('email', 'name')->subject('Site Activation '); 
}); 

Я получаю

enter image description here


Update

почты конфигурации в файле .env

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=465 
[email protected] 
MAIL_PASSWORD=*********** 

Новая ошибка

enter image description here


Я очень любопытными о том, что происходит. Что я сделал не так?

+0

Что такое RFC 2822, 3.6.2? – Gareth

+0

не соответствует? что это значит? Моя электронная почта действительна. – ihue

+0

https://tools.ietf.org/html/rfc2822#section-3.6.2 – Gareth

ответ

1

Это означает, что что-то не так в полях адресов электронной почты, таких как From, Sender или Reply-To.

Swift Mailer строго следуйте стандарту RFC, чтобы избежать попадания сообщений электронной почты, обнаруженных средствами проверки спама.

[email protected] не похож на обычный адрес электронной почты или его вообще не существует.

Попробуйте с другой адрес электронной почты, например отправить мне

Mail::send('emails.activation', array(

    'username'=>$user->username, 
    'name'=>$user->name, 
    'code'=>$user->code, 
    'email'=>$user->email 

), 
function($message){ 
    $message->from('[email protected]'),'Site'); 
    $message->to('[email protected]', 'name')->subject('Site Activation '); 

}); 

Кроме того, если вы хотите использовать Gmail в качестве сервера SMTP ниже:

'driver' => 'smtp', 
'host' => 'smtp.gmail.com', 
'port' => 465, 
'encryption' => 'ssl', 
'username' => '[email protected]', 
'password' => 'your-password', 

EDITED

NB: MAIL_USERNAME должен быть ваш адрес @gmail.com, например [email protected] иначе вы можете получить подключение не может быть установлено с ошибкой хост smtp.gmail.com

Чтобы обработать это исключение, если вы не можете решить ее, перейдите, чтобы открыть приложение \ Исключения \ handler.php

добавить это внутри метод визуализации:

/** 
    * Render an exception into an HTTP response. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param \Exception $e 
    * @return \Illuminate\Http\Response 
    */ 
    public function render($request, Exception $e) 
    { 


     if ($e instanceof Swift_RfcComplianceException){ 
      //redirect to form 
      //You can also delete the user account here if already created or do other stuffs 
      return redirect($request->fullUrl())->with('error',"We have issue sending you an email"); 

     } 


     ....... 

    } 

NB: не забудьте добавить use Swift_RfcComplianceException; в верхней части handler.php

+0

Ваша конфигурация SMTP является ** точно **, что у меня есть. – ihue

+0

Спасибо, что помогли мне, но я все равно получаю сообщение об ошибке ** timeout **. Мне очень любопытно ???? – ihue

+0

Когда я установил 'MAIL_USERNAME = my-email @ gmail.com' с' gmail' как часть этого. Оно работает. Я просто хочу сообщить вам об этом. Возможно, вы можете включить это как часть ответа и ** смело ** это. – ihue

1

похоже, что «от» адрес не является действительным, вы используете env звонить сейчас, не зная 1 00%, что он возвращает.

Попробуйте изменить адрес from на настоящий адрес электронной почты для целей тестирования.

+0

После того, как вы перешли на реальный адрес электронной почты - я получил эту ошибку. «Не удалось установить соединение с хостом smtp.gmail.com [Время работы ограничено # 60]' – ihue

+0

ОК, еще один шаг ;-). Однако настройки вашего SMTP-сервера выглядят некорректно. Если вы хотите использовать SMTP-сервер gmail, вам необходимо указать имя пользователя и пароль. Попробуйте использовать SMTP-сервер, например. ваш поставщик услуг (который обычно не требует аутентификации). – SaeX

+0

Я сделал. Я предоставляю/настраиваю все в файле '.env'. – ihue

 Смежные вопросы

  • Нет связанных вопросов^_^