2012-04-02 11 views
10

Ho scaricato SwiftMailer 4.1.6 per l'invio di e-mail tramite Gmail. Ho scritto il seguente codice per quello scopo.Invio di e-mail con Swift Mailer, GMail e PHP, errore negato autorizzazione

<?php 

require_once 'swiftmailer/lib/swift_required.php'; 

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl") 
     ->setUsername('[email protected]') 
     ->setPassword('***********'); 

$mailer = Swift_Mailer::newInstance($transport); 
$message = Swift_Message::newInstance('Wonderful Subject') 
     ->setFrom(array('[email protected]' => 'Jomit Jose')) 
     ->setTo(array('[email protected]' => 'Jomit Jose')) 
     ->setBody('This is the text of the mail send by Swift using SMTP transport.'); 

$numSent = $mailer->send($message); 
printf("Sent %d messages\n", $numSent); 

ed ha provocato il seguente errore:

Fatal error: Uncaught exception 'Swift_TransportException' with message 
'Connection could not be established with host smtp.gmail.com 
[Permission denied #13]' in 
/home/jomit/public_html/email_test/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php:266 

Stack trace: 

#0 /home/jomit/public_html/email_test/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php(66): 
Swift_Transport_StreamBuffer->_establishSocketConnection() 

#1 /home/jomit/public_html/email_test/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(117): 
Swift_Transport_StreamBuffer->initialize(Array) 

#2 /home/jomit/public_html/email_test/swiftmailer/lib/classes/Swift/Mailer.php(79): 
Swift_Transport_AbstractSmtpTransport->start() 

#3 /home/jomit/public_html/email_test/test.php(16): 
Swift_Mailer->send(Object(Swift_Message)) 

#4 {main} thrown in /home/jomit/public_html/email_test/swiftmailer/lib/classes/Swift/Transport/StreamBuffer.php on line 266 

cosa avrebbe potuto essere sbagliato?

+0

provare a utilizzare 443 invece di 465 – maxjackie

+0

@maxjackie Oops! Risulta anche lo stesso errore: "Eccezione non rilevata" Swift_TransportException "con messaggio" Impossibile stabilire la connessione con l'host smtp.gmail.com [Autorizzazione negata n. 13] "" – Jomoos

+0

Il tuo set-up di PHP supporta SSL? –

risposta

31

Abbiamo riscontrato questo problema e la causa si è rivelata un'impostazione SELinux che impedisce ad Apache e quindi a PHP di aprire qualsiasi connessione socket in uscita. Lo abbiamo disabilitato ma abbiamo dimenticato il parametro -P in modo che fosse ripristinato al prossimo riavvio. Se si utilizza CentOS, RHEL o qualche altra distribuzione abilitata per SELinux, questa è una probabile causa del problema.

La restrizione di connessione può essere disabilitato con questo comando: porta

setsebool -P httpd_can_network_connect on 
+0

Buona soluzione. Ho lavorato per me. – user2681579

+0

Si è verificato questo problema con un'installazione di OrangeHRM. Mi ci è voluto un po 'per trovare questa risposta nascosta. Molte grazie. – jasperado

+0

Dopo una lunga giornata di ricerche, ho trovato questo post e ha risolto il mio problema con flyspray che non inviava email, grazie :) – steabert

Problemi correlati