Utilisation de PHPMailer sur Hostgator (timeout d'attente lorsque vous essayez de vous connecter au server SMTP)

Résolu : le problème était d'utiliser le service via hostgator, pour une raison quelconque, l'user doit se connecter en utilisant le nom principal dsn et non le nom de domaine SMTP.

J'utilisais la fonction simple de mail() PHP mail() pour envoyer des emails et ça fonctionnait bien, mais il ne fallait pas se connecter au server SMPT. Lorsque j'ai déménagé à la bibliothèque PHPMailer , j'ai écrit ce code pour envoyer un courrier électronique mais j'ai un timeout d'attente lorsque j'essaie de faire cette connection. Selon les informations de hostgator, le server SMTP (avec SSL / TSL) se trouve au port 465 . J'ai donc écrit:

 $mail = new PHPMailer; $mail->SMTPDebug = 3; $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'mail.mydomain.com'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = 'contact@mydomain.com'; // SMTP username $mail->Password = 'pass'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 465; // TCP port to connect to $mail->setFrom('contact@mydomain.com', 'my name'); $mail->addAddress('....@gmail.com', 'someone'); // Add a recipient $mail->addReplyTo('contact@mydomain.com', 'my name'); $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'subject'; $mail->Body = 'msg body <b>bold!</b>'; $mail->AltBody = 'Corpo alternativo caso o primeiro não seja exibido'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } 

Mais lorsque ce file php est appelé, en plus de ne pas afficher l' echo j'ai placé avant le code, il a également attendu les 300 secondes pour ouvrir un modeur me prévenant de l'erreur de timeout. Merci d'avance.

Je pense que la réponse est dans votre code. Vous avez des lignes comme $mail->Host = 'mail.mydomain.com'; Assurez-vous de changer tous ces domaines avec des domaines réels. Vous devez utiliser votre domaine de site Web www.com .

Ce qui suit est faux.

 $mail->Host = 'mail.mydomain.com'; // Specify main and backup SMTP servers 

Je ne suis pas surpris qu'il n'envoie pas. Échangez toutes les valeurs avec des strings réelles qui importent votre site.