2013-01-05 3 views
18

Non riesco a capire per la vita di me perché esattamente si sta venendo a mancare .. questo è l'errore esatto sto ottenendo:Swift_TransportException collegamento non è stato possibile stabilire con smtp.gmail.com ospite

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection 
could not be established with host smtp.gmail.com [Connection refused #111]' in 
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php:259 
Stack trace: #0 
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php(64): 
Swift_Transport_StreamBuffer->_establishSocketConnection() #1 /home/content/38/6896038/html/test/lib/classes/Swift/Transport/AbstractSmtpTransport.php(115): Swift_Transport_StreamBuffer->initialize(Array) #2 /home/content/38/6896038/html/test/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start() #3 /home/content/38/6896038/html/test/contact.php(55): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in /home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php on line 259 

E il codice Im usando è quello che ho ottenuto dal tutorial e leggendo qui esempi, qui è:

require_once 'lib/swift_required.php'; 

$transport = Swift_MailTransport::newInstance(); 

// Create the Transport the call setUsername() and setPassword() 
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl') 
    ->setUsername('[email protected]') 
    ->setPassword('xxx') 
    ; 

// Create the Mailer using your created Transport 
$mailer = Swift_Mailer::newInstance($transport); 

$nombre = $_POST['name']; 
$apellido = $_POST['apellido']; 
$email = $_POST['email']; 
$telefono = $_POST['telefono']; 
$title = $_POST['jobtitle']; 

// Create the message 
$message = Swift_Message::newInstance() 

    // Give the message a subject 
    ->setSubject('Nuevo applicante para: ' . $title) 

    // Set the From address with an associative array 
    ->setFrom(array('[email protected]' => 'no-reply')) 

    // Set the To addresses with an associative array 
    ->setTo('[email protected]') 

    // Give it a body 
    ->setBody('<html> 
       <head></head> 
       <body> 
        <table> 
         <tr> 
          <td>Nombre:</td><td>' . $nombre . ' ' . $apellido .'</td> 
         </tr> 
         <tr> 
          <td>Email:</td><td>' . $email . '</td> 
         </tr> 
         <tr> 
          <td>Telefono:</td><td>'. $telefono .'</td> 
         </tr> 
        </table> 
       </body> 
      </html>', 'text/html') 

    // Optionally add any attachments 
    ->attach(Swift_Attachment::fromPath($_FILES["file"]["tmp_name"])->setFilename($_FILES['file']['name'])); 

// Send the message 
$result = $mailer->send($message); 

ogni aiuto è molto apprezzato, ho fatto la mia lettura e la ricerca e non riesco a trovare una soluzione al this :(

EDIT: A quanto pare si tratta di un problema con Gmail, ho cambiato per uno smtp diverso e ha funzionato ..: S

+0

Sembra tutto (codice-saggio) è impostato correttamente, hai provato ad accedere a Google Apps tramite le informazioni di accesso che stai utilizzando qui? Se hai appena creato l'account, Gmail richiede di accettare alcuni termini prima che l'account possa essere utilizzato. Finché non si preme "Accetto" su quella pagina, l'accesso a SMTP non sarà disponibile. – SamT

+0

sì, ho quell'e-mail che funziona attualmente. – Andres

+0

Il server consente la connessione SSL tramite la porta 465? Conosco un hosting condiviso che disabilita questo. Se è così, di solito devi solo contattare il supporto e apriranno la porta per te. – Julien

risposta

15

Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.gmail.com [Connection refused #111]

Connessione rifiutata è un messaggio di errore molto esplicito e chiaro. Significa che non è stato possibile stabilire la connessione socket perché l'estremità remota ha rifiutato attivamente di connettersi.

È molto improbabile che Google stia bloccando la connessione.

È molto probabile che il provider di hosting Web disponga di impostazioni del firewall che bloccano le connessioni in uscita sulla porta 465 o che stiano bloccando SMTP a Gmail. 465 è la porta "errata" per SMTP sicuro, anche se viene spesso utilizzata e Gmail ascolta lì. Prova invece la porta 587. Se la connessione viene ancora rifiutata, chiama il tuo host e chiedi loro cosa succede.

+0

Come possiamo creare un errore personalizzato per questo? – Aaron

+0

@Charles, sembra che tu possa aiutarmi. Guardate questo: https://stackoverflow.com/questions/48654849/how-can-i-solve-connection-could-not-be-established-with-host-smtp-gmail-com –

-2

Ho appena avuto questo problema e risolto risolvendo mail.php nella cartella config. Di solito quando si usa hosting condiviso, che società di hosting consente di creare una e-mail come

[email protected]

. Quindi vai alle impostazioni e-mail sotto il tuo cpanel di hosting condiviso e aggiungi una nuova email. Prendi l'email e la password e impostalo nel

mail.php.

Dovrebbe funzionare!

+1

Se l'OP sta usando gmail Server SMTP, in che modo nel mondo è rilevante la configurazione di una società di hosting condivisa? Senza contare che un'e-mail che non esiste è improbabile che produca un errore di "connessione rifiutata". – kstev

6

rimuovere dal config.yml spool: { type: memory }

allora si sarà aggiungere try catch Ti piace questa

try{ 
     $mailer = $this->getMailer(); 
     $response = $this->getMailer()->send($message); 
    }catch(\Swift_TransportException $e){ 
     $response = $e->getMessage() ; 
    } 
+0

Sembra che tu possa aiutarmi. Guarda questo: https://stackoverflow.com/questions/48654849/how-can-i-solve-connection-could-not-be-established-with-host-smtp-gmail-com –

0

Ho avuto lo stesso problema per un po ', in sostituzione di: smtp.gmail.com con 173.194.65.108 realtà ha funzionato per me!

0

Nel mio caso, stavo usando laravel 5 e avevo dimenticato di cambiare le variabili globali posta nel file .env che si trova nella cartella principale directory (queste variabili sovrascrivono la configurazione di posta elettronica)

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

per impostazione predefinita, la macchina server di posta è:

MAIL_HOST=mailtraper.io 

mi è stato sempre lo stesso errore, ma che ha lavorato per me.

2

tcp: 465 è stato bloccato. Prova ad aggiungere una nuova regola del firewall e aggiungi una porta della regola 465. o controlla 587 e cambia la crittografia in tls.

3

Ho avuto lo stesso problema quando ero con Godaddy web hosting e risolto questo modificando il mio file .env come,

MAIL_DRIVER=smtp 
MAIL_HOST=XXXX.XXXX.in 
MAIL_PORT=587 
MAIL_USERNAME=dexxxxx 
MAIL_PASSWORD=XXXXXXXX 
MAIL_ENCRYPTION=tls 

Dove MAIL_HOST è il nome di dominio da GoDaddy, MAIL_USERNAME è il tuo nome utente da Godaddy e MAIL_PASSWORD è la tua password di Godaddy.

Spero che questo possa aiutarti.

+0

Dove posso trovare il file. file env? Sto anche usando Godaddy! Grazie! – Gacci

+0

Non sarà visibile su cpanel per impostazione predefinita. puoi usare la connessione ftp per vedere questo file. sarà sulla radice del tuo progetto –

-2

Ho avuto lo stesso problema e riesco a risolverlo disabilitando AVAST Anti Virus. Così come la mia estensione AVAST nel browser. L'antivirus a volte blocca la tua applicazione. :) Spero che aiuti qualcuno.

+0

esploralo con un passo o un esempio per una migliore comprensione – Anil

1

La mia soluzione era quella di cambiare:

'driver' => 'smtp', 

a

'driver' => 'mail', 

in app/config/mail

Speranza che aiuta