Je suis sur Google pour savoir comment commettre cette erreur plusieurs heures. J'ai essayé toutes les solutions de ce sujet sans succès. <? phpinfo(); ?>
(la seule différence que j'utilise avec Appserver au lieu de IIS), cela ne montre rien de réel pour SSL Quoi d'autre devrais-je essayer?
Le message d'erreur complet:
<b>Warning</b>: fsockopen() [<a href='function.fsockopen'>function.fsockopen</a>]: 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 <b>C:\AppServ\www\webgitz\test\class.smtp.php</b> on line <b>122</b><br />
SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (27010016)
et code:
<?php
require_once "validation.php";
require_once "PHPMailer.php";
require_once "class.smtp.php";
$email= "[email protected]";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port =465; // set the SMTP server port
$mail->Host = "smtp.gmail.com"; // GMAIL's SMTP server
$mail->SMTPDebug = 2;
$mail->SMTPSecure = 'ssl';
$mail->Username = "[email protected]"; // GMAIL username
$mail->Password = "*********"; // GMAIL password
$mail->AddReplyTo("[email protected]","AAAA"); // Reply email address
$mail->From = "[email protected]";
$mail->FromName = "...."; // Name to appear once the email is sent
$mail->Subject = "...."; // Email's subject
$mail->Body = "Hello World,<br />This is the HTML BODY<br />"; //HTML Body
$mail->AltBody = "..."; // optional, commentA out and test
$mail->WordWrap = 50; // set Word wrap
$mail->MsgHTML($msg); // [optional] Send body email as HTML
$mail->AddAddress("$email", "fooo"); // email address of recipient
$mail->IsHTML(true); // [optional] send as HTML
if(!$mail->Send()) echo 'ok'; else echo 'error';
?>
Vérifiez votre fichier php.ini, dessus, si vous avez ceci:
;extension=php_openssl.dll
changez le en
extension=php_openssl.dll
Pensez ensuite à redémarrer Apache, à l’aide du panneau de commande proposé par Appserver ou des fenêtres de services du panneau de configuration du système.
Assurez-vous également que php_openssl.dll se trouve sur un dossier accessible par le système. De nombreuses personnes l’utilisent pour résoudre le problème des problèmes d’emplacement dll en les copiant dans C:\Windows ou C:\Windows\System32. Bien que cela ne devrait pas être nécessaire.
Après cela, exécutez un fichier avec phpinfo et vérifiez qu’il est activé.
J'ai lu quelque part, je ne peux pas le préciser, que certaines installations de ce type de wamps ont plus d'un php.ini, mais qu'un seul est vraiment actif, se pourrait-il que vous ayez modifié le mauvais?
J'ai eu une erreur similaire avec SSL pendant des heures.
Ce qui a fonctionné pour moi a été de copier php\libeay32.dll
, php\ssleay32.dll
et php\ext\php_openssl.dll
du répertoire php vers le répertoire Apache2.2\bin
. Puis redémarrez Apache.
La bonne réponse est de remplacer la ligne
;extension=php_openssl.dll
dans le fichier php.ini
avec
extension=php_openssl.dll
Si vous ne trouvez pas extension=php_openssl.dll
dans le fichier php.ini
, ajoutez simplement la ligne suivante au fichier:
extension=php_openssl.dll
Cela devrait marcher!
Pour certaines personnes, ces solutions ne fonctionnent pas.
Pour moi, la solution était la suivante: copiez dll libeay32.dll et ssleay32.dll dans le répertoire bin du serveur - Apache.
La solution suggère dans un commentaire dans: http://php.net/manual/fa/openssl.installation.php
Quand j'ai regardé dans le journal des erreurs, j'ai compris que le problème était de charger les dll et de les mettre dans le répertoire du serveur était le seul moyen.