2012-04-02 19 views
10

He descargado SwiftMailer 4.1.6 para enviar correos electrónicos usando Gmail. Yo había escrito el siguiente código para ese propósito.Enviando un correo electrónico con Swift Mailer, GMail y PHP, Error denegado de permiso

<?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); 

y que dio como resultado el siguiente error:

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 

Lo que podría haber sido mal?

+0

intento usando 443 en lugar de 465 – maxjackie

+0

@maxjackie Ups! También da como resultado el mismo error: 'Excepción no detectada 'Swift_TransportException' con el mensaje 'No se pudo establecer la conexión con el host smtp.gmail.com [Permiso denegado # 13]' ' – Jomoos

+0

¿Su configuración de PHP admite SSL? –

Respuesta

31

Tuvimos este problema y la causa resultó ser una configuración de SELinux que impide que Apache y, por lo tanto, PHP abra cualquier conexión de socket saliente. Lo habíamos inhabilitado, pero olvidó el parámetro -P, por lo que se revirtió en el próximo reinicio. Si está utilizando CentOS, RHEL u otra distribución habilitada para SELinux, esta es una posible causa del problema.

La restricción de la conexión se puede desactivar con este comando: puerto

setsebool -P httpd_can_network_connect on 
+0

Buena solución.Trabajó para mí. – user2681579

+0

Tuve este problema con una instalación de OrangeHRM. Me tomó un tiempo encontrar esta respuesta oculta. Muchas gracias. – jasperado

+0

Después de un largo día de búsqueda, encontré esta publicación y resolvió mi problema con flyspray no enviando correos electrónicos, gracias :) – steabert

Cuestiones relacionadas