Enviar correo electrónico usando php, gmail y swiftmailer causa un error relacionado con SSL

StackOverflow https://stackoverflow.com/questions/4846599

Pregunta

Aquí está mi código PHP:

function SendCookieToTheMail()
{
    require_once 'swift-mailer/lib/swift_required.php';
    //Create the Transport
    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com')
      ->setPort(465)
      ->setEncryption('ssl')
      ->setUsername('007@gmail.com')
      ->setPassword('123')
      ;

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

    //Create a message
    $message = Swift_Message::newInstance('Test')
      ->setFrom(array('007@gmail.com' => 'From mr. 007'))
      ->setTo(array('007@gmail.com', '007@gmail.com' => 'To mr. 007'))
      ->setBody('Body')
      ;

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

    /*
    You can alternatively use batchSend() to send the message

    $result = $mailer->batchSend($message);
    */ 
}

Aquí está el error:

( ! ) Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 233

( ! ) Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.gmail.com [Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? #44551400]' in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 235

( ! ) Swift_TransportException: Connection could not be established with host smtp.gmail.com [Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? #44551400] in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 235

¿Dónde está el problema?

Actualización:

Revisé phpinfo() y dice:

OpenSSL support     disabled (install ext/openssl) 

Me referí a los enlaces a continuación, pero no pude instalar ssl ...

¿Fue útil?

Solución

¿Su php era compatible con SSL? http://php.net/manual/en/function.fsockopen.php y consulte http://www.php.net/manual/en/openssl.installation.php como referencia.

Cree una página con

phpinfo();

¿Está habilitado SSL?

Otros consejos

Estaba buscando una pregunta similar y descubrí que tienes que editar el archivo php.ini editar la siguiente línea

;extension=php_openssl.dll

elimine el punto y coma y funcionará bien

Espero que ayude a alguien más :)

gmail necesita esto en su config.yml

Swiftmailer: cifrado: tls

o reemplace su: -> setEncryption ('ssl') por -> setEncryption ('tls')

y no ssl

Debe habilitar el módulo php_openssl desde las extensiones php.Simplemente edite su archivo php.ini

extension=php_openssl.dll

de hecho, recomiendo usar tls en el puerto 25 prueba usando la siguiente sintaxis:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25, 'tls')
    ->setUsername('007@gmail.com')
    ->setPassword('123');

Necesita configurar php para que funcione con ssl

http://www.php.net/manual/en/openssl.instalación.php

Espero que haya resuelto su problema, sin embargo, para mí, línea:

;extension=php_openssl.dll

no existía en mi php.ini (ejecutando XAMPP 1.7.7 en Win7), así que continúe y agréguelo en la sección de extensiones, elimine el punto y coma y debería funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top