2016-04-01 14 views
1

Laravel'de Mail işlevini kullanırken, aşağıda gösterilen hatayı alıyorum.Laravel: E-postayı gönder "

ben .env dosyasındaki tüm verilere sahip ve yapılandırmasındaki toplayıp hem birinci denedim/mail.php 'yi

o oradan elde değildi sonra durumunda mail.php' yi içine hardcoding .

Farklı portları da denedim, 465'i bekledim, fakat aynı zamanda 587 ve 25'i de değiştirmedi.

Ayrıca farklı smtp sunucularını denedim ve diğer web sitelerinde farklı (hangi çalışma) Postaları denedim. Yani benim sunucum değil ya da böyle kokuyor.

Kullanıcıları kaydetmek ve daha sonra üzerine tıklamak için bir onay postası göndermek için bunu kullanıyorum. Tamamen masaya saklanırlar, ama postayı gönderirken, dışarı çıkmaz.

Ayrıca, $ data dizisinden alamıyorsa, denetleyici dosyasındaki Kime: adresini kodlamayı denedim. Değişiklik yok.

Mail::send('auth.emails.register', ['data' => $data ], function($mail) use($data) {  $mail->from('[email protected]', 'Your Application'); 
       $mail->subject('Confirm your mail'); 
       $mail->to($data['email'], $data['name']); 
       });     
      return redirect("auth/register") 
      ->with("message", "A confirmation link has been sent to your email");   
     } 
Bunu gidermek için nereden alıyor ve (aynı zamanda Tablo kaydedildi) Confirm_token

Hata okuma böyle gider Hata ekranda görebilirsiniz

:

Swift_TransportException in AbstractSmtpTransport.php line 404: 
    Connection to server.websitehostserver.net:465 Timed Out 
    in AbstractSmtpTransport.php line 404 
    at Swift_Transport_AbstractSmtpTransport->_getFullResponse('0') in AbstractSmtpTransport.php line 289 
    at Swift_Transport_AbstractSmtpTransport->_readGreeting() in 

     AbstractSmtpTransport.php line 117 
     at Swift_Transport_AbstractSmtpTransport->start() in Mailer.php line 79 
     at Swift_Mailer->send(object(Swift_Message), array()) in Mailer.php line 386 
     at Mailer->sendSwiftMessage(object(Swift_Message)) in Mailer.php line 173 
     at Mailer->send('auth.emails.register', array('data' => array('name' => 'aaaaa', 'email' => '[email protected]', 'confirm_token' => 'x5nSRdqgPApFWUvwlNcMLmwvMQ1T64IKpfX0IHjqm7zjwfDYEhCSGPixJyNky2XU5')), object(Closure)) in compiled.php line 6222 
     at Facade::__callStatic('send', array('auth.emails.register', array('data' => array('name' => 'aaaaa', 'email' => '[email protected]', 'confirm_token' => 'x5nSRdqgPApFWUvwKtwdzwT64IKpfX0IHjqm7zjwfDYEhCSGPixJyNky2XU5')), object(Closure))) in AuthController.php line 84 
     at Mail::send('auth.emails.register', array('data' => array('name' => 'aaaaa', 'email' => '[email protected]', 'confirm_token' => 'x5nSRdqgPApFbHWqszKtwdzwT64IKpfX0IHjqm7zjwfDYEhCSGPixJyNky2XU5')), object(Closure)) 

    in AuthController.php line 84 

Her ihtimale karşı, Tam Kontrolörü ekliyorum:

<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 
use Illuminate\Http\Request; 
use Mail; 
use Auth; 
use Illuminate\Support\Facades\Input; 

class AuthController extends Controller 
{ 
    /* 

    use AuthenticatesAndRegistersUsers; 

    /** 
    * Create a new authentication controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'getLogout']); 
    } 

    public function postRegister(Request $request){ 

     $rules = [ 
      'name' => 'required|min:3|max:16|regex:/^[a-záéíóúàèìòùäëïöüñ\s]+$/i', 
      'email' => 'required|email|max:255|unique:users,email', 
      'password' => 'required|min:6|max:18|confirmed', 
     ]; 

     $messages = [ 
      'name.required' => 'This field is required', 

     ]; 

     $validator = Validator::make($request->all(), $rules, $messages); 

     if ($validator->fails()){ 
      return redirect("auth/register") 
      ->withErrors($validator) 
      ->withInput(); 
     } 
     else{ 
      $user = new User; 
      $data['name'] = $user->name = $request->name; 
      $data['email'] = $user->email = $request->email; 
      $user->password = bcrypt($request->password); 
      $user->remember_token = str_random(100); 
      $data['confirm_token'] = $user->confirm_token = str_random(100); 
      $user->save(); 

      Mail::send('auth.emails.register', ['data' => $data ], function($mail) use($data) { 

       $mail->from('[email protected]', 'Your Application'); 
       $mail->subject('Confirm your mail'); 
       $mail->to($data['email'], $data['name']); 

      }); 

      return redirect("auth/register") 
      ->with("message", "A confirmation link has been sent to your email"); 



     } 


    } 

    public function confirmRegister($email, $confirm_token) 
    { 


    $user = new User; 

    $the_user = $user->select()->where('email', '=', $email) 
           ->where('confirm_token', '=', $confirm_token) 
           ->get(); 

    if (count($the_user) > 0) 
    { 
     $active = 1; 
     $confirm_token = str_random(100); 
     $user ->where('email', '=', $email) 
     ->update(['active' => $active, 'confirm_token' => $confirm_token]); 
     return redirect('auth/register') 
     ->with("message", 'Congrats'. $the_user[0]['name'] . 'account activated'); 
    } 

    else{ 

     return redirect('/'); 
    } 

    } 

    public function postLogin(Request $request){ 







     if (Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password'), 'active' => 1])) { 

      return redirect()->intended($this->redirectPath()); 

      } 

      else{ 
       $rules = [ 
        'email' => 'required|email', 
        'password' => 'required', 
       ]; 

       $messages = [ 
        'email.required' => 'El campo email es requerido', 
        'email.email' => 'El formato de email es incorrecto', 
        'password.required' => 'El campo password es requerido', 
       ]; 

       $validator = Validator::make($request->all(), $rules, $messages); 

       return redirect('auth/login') 
       ->withErrors($validator) 
       ->withInput() 
       ->with('message', 'Error al iniciar sesión'); 
    } 


    } 









} 

cevap

0

Ya benim web barındırma karşı gelmek sağlayıcım 465 kullanmam gerektiğini belirtir, 587'ye gittim ve nedenini bilmiyorum ama bu sefer işe yaradı.

Garip olan şey, aynı sunucuda barındırılan başka bir web sitem var ve ben orada herhangi bir sorun olmadan 465 kullanın. Bununla birlikte, diğer ağımdaki bu bağlantı noktasından dışarı çıkmayacaktı. Asla nedenini bilmeyeceğim.

İnternet'teki tüm benzer vakaları okudum ve bunların hepsi 465 numaralı bağlantı noktasında sorun yaşadı ve sonunda diğerini kullanarak çalıştı.

Benzer bir sorunla karşılaşırsanız, yukarıdaki kodumu kopyala, tamamdır ve çalışır.

Konuyu inceleyen herkese teşekkürler.