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.

One Solution collect form web for “Utilisation de PHPMailer sur Hostgator (timeout d'attente lorsque vous essayez de vous connecter au server SMTP)”

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.

  • Accédez au sélecteur du Gestionnaire de démarrage Windows lorsque le timeout d'attente est défini sur 0?
  • php exécute des scripts pour toujours, mais j'ai max_execution_time réglé à 30
  • Erreur de server avec de gros messages
  • Modification du timeout de démarrage de MySQL ( signalé bien que mysql ait correctement démarré)
  • Nginx + Passenger: arrêter le téléchargement des files après 30 secondes
  • Ubuntu / KVM - Iptables Les règles NAT pour transférer les ports de l'hôte vers l'invité ne fonctionnent pas correctement (affecte http)
  • logins SSH gelées avec "Échec échoué: tuyau cassé"
  • Comment contourner une réponse «Demande expirée»?
  • Base de données MSSQL2005 suspendue lors de la maintenance
  • Ssh, telnet à AWS EC2 délai d'instance
  • Tableau de suppression de timeout d'attente dans SQL Server
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.