2015-09-21 15 views
29

Sto utilizzando la funzione Laravel Mail per inviare email. Le seguenti sono le mie impostazioni del file app/config/mail.php.Codice di risposta previsto 220 ma ha ottenuto il codice "", con il messaggio "" in Laravel

'driver' => 'sendmail', 
'host' => 'smtp.gmail.com', 
'port' => 587, 
'from' => array('address' => '[email protected]', 'name' => 'MyName'), 
'encryption' => 'tls', 
'username' => 'myUsername', 
'password' => "password", 
'sendmail' => '/usr/sbin/sendmail -bs', 
'pretend' => false, 

controller Metodo Posta

//Send Mail  
Mail::send('sendMail', array('key' => 'value'), function($message) 
{ 
    $message->to('[email protected]', 'Sender Name')->subject('Welcome!'); 
}); 

Quando eseguo il codice mi dà seguente messaggio di errore:

Swift_TransportException

codice di risposta prevista 220 ma ho ottenuto il codice "", con messaggio ""

Ho creato un file SendMail.php in vista che contiene alcuni dati.

Come posso risolvere questo messaggio di errore?

+0

hai attivato la verifica in due passaggi per l'account Gmail che stai utilizzando? – Sid

risposta

50

Questo problema può verificarsi in genere quando non si attiva la verifica in due passaggi per l'account gmail che si sta utilizzando per inviare un email. Quindi, per prima cosa, abilita two step verification, puoi trovare molte risorse per abilitare la verifica in due passaggi. Dopo averlo abilitato, è necessario creare un app password. E utilizzare app password nel file .env. Quando hai finito, il tuo file .env avrà un aspetto simile.

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
MAIL_USERNAME=<<your email address>> 
MAIL_PASSWORD=<<app password>> 
MAIL_ENCRYPTION=tls 

e la tua mail.php

<?php 

return [ 
    'driver' => env('MAIL_DRIVER', 'smtp'), 
    'host' => env('MAIL_HOST', 'smtp.gmail.com'), 
    'port' => env('MAIL_PORT', 587), 
    'from' => ['address' => '<<your email>>', 'name' => '<<any name>>'], 
    'encryption' => env('MAIL_ENCRYPTION', 'tls'), 
    'username' => env('MAIL_USERNAME'), 
    'password' => env('MAIL_PASSWORD'), 
    'sendmail' => '/usr/sbin/sendmail -bs', 
    'pretend' => false, 

]; 

Dopo questo modo, eseguire php artisan config:cache e php artisan config:clear, quindi controllare, e-mail dovrebbe funzionare.

+0

no! non funziona –

+0

Ho cercato ovunque e non ho trovato la soluzione, ma mi hai completamente salvato la vita !!. Grazie mille!!. Sto votando la tua risposta! – HenryDev

+0

contento che abbia aiutato :) – Sid

8

Nel mio caso ho dovuto impostare il

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
MAIL_USERNAME=<<your email address>> 
MAIL_PASSWORD=<<app password>> 

MAIL_ENCRYPTION= ssl <<<<<<<------------------------- (FOCUS THIS) 

a lavorare esso .. potrebbe essere utile. Il resto del codice era lo stesso di @Sid. unica differenza è a

MAIL_ENCRYPTION= ssl 

E non credo che la modifica sia file di ambiente e app/config/mail.php non è necessaria. Usa solo un metodo.

Problemi correlati