L'envoi de courriels en utilisant php, gmail, et les causes Swiftmailer erreur liée SSL
-
27-10-2019 - |
Question
Voici mon code 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);
*/
}
Voici l'erreur:
( ! ) 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
Où est le problème ??
Mise à jour:
J'ai vérifié phpinfo()
et il dit:
OpenSSL support disabled (install ext/openssl)
fait référence aux liens ci-dessous, mais je ne pouvais pas installer ssl ...
La solution
ce que votre support php SSL? http://php.net/manual/en/function.fsockopen.php et vérifiez http://www.php.net/manual/en/openssl. installation.php pour référence.
Créer une page avec
phpinfo();
SSL est activé?
Autres conseils
Je cherchais une question similaire et je trouve que vous devez modifier le fichier php.ini modifier la ligne suivante
;extension=php_openssl.dll
retirer le côlon et demi il fonctionne très bien
L'espoir que l'aide une autre:)
gmail besoin dans votre config.yml
swiftmailer: chiffrement: tls
ou remplacer votre: -> setEncryption ( 'ssl') par -> setEncryption (tls '')
et non ssl
Vous devez activer le module de php_openssl d'extensions php. Il suffit de modifier votre php.ini fichier
extension=php_openssl.dll
en fait, je conseil à l'utilisation tls sur le port 25 test en utilisant la syntaxe suivante:
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25, 'tls')
->setUsername('007@gmail.com')
->setPassword('123');
Vous devez configurer PHP avec ssl
J'espère que vous avez résolu votre problème, mais pour me ligne:
;extension=php_openssl.dll
n'existait pas dans mon php.ini (XAMPP 1.7.7 sur Win7 en cours d'exécution), alors allez-y et ajoutez dans la section des extensions, supprimer et de virgule il devrait fonctionner.