2017-01-16 2 views
0

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

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
[email protected] 
MAIL_PASSWORD=mypassword 
MAIL_ENCRYPTION=tls 

и вот мой код контроллера

protected function create(array $data) 
{ 
    //dd($data); 


    $models = new User; 
    $user=User::create([ 
     'name' => $data['name'], 
     'email' => $data['email'], 
     'password' => bcrypt($data['password']), 
     /*'usertype' =>$data['usertype'],*/ 
     'status' => 0, 

    ]); 

    $use = array('name' => 'Admin'); 
    //$models->emailw = Auth::user()->email; 
    $message_id = ""; 
    $name = ""; 
Mail::send('emailMessage', $use, function ($m) use ($message_id,$name){ 

     $message_id = DB::getPdo()->lastInsertId(); 

     $name = DB::table('users')->select('name')->where('id','=', $message_id)->pluck('name'); 

     //$email = DB::table('users')->select('email')->where('id','=', $message_id)->pluck('email'); 
     $subject = "Id = ". $message_id . " name = " .$name[0]; 

     $m->to('[email protected]') 
     ->subject($subject); 
    }); 
return $user; 

} 

и вот мой mail.php код

<?php 

return [ 
     'driver' => env('MAIL_DRIVER', 'smtp'), 
     'host' => 'smtp.gmail.com', 
     'port' => 587, 
     'from' => [ 
        'address' => '[email protected]', 
        'name' => 'Admin', 
        ], 

     'encryption' => env('MAIL_ENCRYPTION', 'tls'), 
     'username' => env('MAIL_USERNAME'), 
     'password' => env('MAIL_PASSWORD'), 
     'sendmail' => '/usr/sbin/sendmail -bs', 

     ]; 

Что мне нужно изменить здесь?

+0

Вы проверили ваш хостинг, что порт для почты не блокируется брандмауэром ('port587')? – KuKeC

+0

Измените номер порта. to '465' –

+0

@KuKeC порт открыт @K arun попробовал этот порт, все еще не работает – incorporeal

ответ

0

В вашем состоянии может быть много вещей, которые могут пойти не так. Я пытаюсь перечислить все возможные варианты:

  1. Попробуйте использовать порт 465 вместо 587, поскольку Gmail обычно использует его.
  2. Проверьте, заблокирован ли порт на вашем реальном сервере.
  3. Войдите в свою учетную запись gmail ([email protected]). Перейдите к https://myaccount.google.com/security, прокрутите вниз до нижней части страницы. В правой части вы увидите: Разрешите менее безопасные приложения, убедитесь, что опция включена.

Я надеюсь, что это помогает

+0

Я проверил все, что вы написали ... все еще не работает – incorporeal

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