web-dev-qa-db-fra.com

Connexion SMTP au serveur PHPMailer GoDaddy refusée

L'autre jour, je rencontrais des problèmes avec mon site hébergé GoDaddy. J'ai appelé leur support technique, et la personne avec qui j'ai parlé a suggéré que mes problèmes étaient liés au fait que j'étais sur une machine Windows et que je serais mieux servi sur une machine Linux. N'ayant aucune opinion à ce sujet, j'ai accepté et ils m'ont basculé.

À la suite de cette transition, les fonctionnalités de PHPMailer m’ont abandonné. Cela fonctionne depuis des mois et je sais que mes paramètres sont exacts. J'ai confirmé avec GoDaddy que le compte que je tente d'envoyer n'a pas changé de leur point de vue. Aucune modification n'a été apportée côté utilisateur (comme un nouveau mot de passe). En bout de ligne, la seule différence est que mon site est maintenant hébergé sur un serveur Linux. C'est tout.

Je suppose donc que mes difficultés avec PHPMailer doivent être liées à cela, car c’est trop une coïncidence si un script qui a fonctionné pendant des mois échoue au moment exact où la transition du serveur a lieu. Mais pourquoi? J'ai passé une heure avec leur support technique et ils ne voient rien de mal avec les paramètres du serveur. Nous avons vérifié mes paramètres (juste pour le fun). Tout a l'air bien, mais quand j'envoie un email, j'obtiens cette erreur:

SMTP -> ERROR: Failed to connect to server: Connection refused (111)SMTP Connect() failed.

Il existe de nombreux articles sur ce type d'erreur et la plupart d'entre eux concernent des personnes configurées pour la première fois et dont les paramètres ont été mal entrés ou omis. Cependant, je SAIS que mes réglages sont complets et précis car je les utilise avec succès depuis des mois. Je vais les poster ici juste pour être complet:

$mail = new PHPMailer();
$mail->IsSMTP();  //telling the class to use SMTP
$mail->isHTML(true);
$mail->Host         = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"
$mail->WordWrap     = 50;
$mail->SMTPAuth     = true;
$mail->SMTPSecure   = "ssl";
$mail->Port         = 465;
$mail->Username     = "[email protected]";
$mail->Password     = *******;
$mail->Subject      = "Test Email";
$mail->SMTPDebug = 1;

Quelqu'un a-t-il des idées sur la raison Existe-t-il des paramètres de serveur que les responsables du support technique pourraient ne pas connaître, comme dans mon fichier php.ini? Le gars avec qui j'ai travaillé a fait de son mieux pour m'aider, mais il peut ne pas être au courant de quelque chose.

Toute aide est appréciée. Faites-moi savoir s'il y a d'autres informations que je peux fournir. Merci!

EDIT: Je devrais également mentionner certaines des autres tentatives que j'ai faites. J'obtiens le même résultat, peu importe quoi.

1) TLS avec le port 587 2) Sans SSL utilisant les ports 25, 80 et 3535. 2) Mon adresse Gmail personnelle modifiant le serveur, le nom d'utilisateur, le mot de passe, etc.

24
Alex

Comme il semble que ce soit un problème persistant, laissez-moi ajouter ma propre expérience.

Notre site Web utilise PHPMailer et le site est hébergé sur un serveur linux GoDaddy. Les paramètres que semblait être corrects (d'après tout ce que j'ai pu trouver sur SO et sur le site de support goDaddy) sont les suivants:

SMTP_SERVER: smtpout.secureserver.net (or alternatively relay-hosting.secureserver.net)
SMTP_PORT: 465 //or 3535 or 80 or 25
SMTP_AUTH: true //always
SMTP_Secure: 'ssl' //only if using port 465

Après avoir passé plus de 6 heures à essayer toutes les variantes de ports (25, 3535, 4655), de serveurs relay-hosting.secureserver.net, smtpout.secureserver.net: [port], etc.), de noms d'utilisateurs, de mots de passe, etc. J'ai appelé goDaddy. Encore 40 minutes plus tard, il a été révélé que:

1) les comptes de messagerie "workspace" sont en cours de retrait. C'est important, car si vous avez un compte de messagerie avec goDaddy aujourd'hui, vous avez probablement un compte Workspace. Selon le représentant du support technique, il s’agit d’un hébergement séparé de votre compte linux.

2) goDaddy se déplace vers les comptes de messagerie cPanel. Hourra! Calendrier? "... dans les 2 à 3 prochaines années!"

3) J'ai déplacé nos comptes de Workspace vers des comptes cPanel alors que j'étais au téléphone avec le représentant. Vraiment facile à faire.

4) Après avoir modifié vos comptes de messagerie (y compris la modification de vos enregistrements MX) en un e-mail cPanel (par opposition à un e-mail "d'espace de travail"), les paramètres appropriés pour un e-mail de formulaire Web utilisant PHPMailer sont les suivants:

SMTP_SERVER: localhost   //(and I mean literally: "localhost"- in place of smtp.secureserver.net and relay-hosting.secureserver.net, etc.)

... et tout le reste (comme ci-dessus) la même chose ... 

Le formulaire Web que j'ai créé avec PHPMailer a parfaitement fonctionné après ce changement!

Utilisez votre identifiant de compte e-mail cPaneL (nom d'utilisateur) et votre mot de passe dans la configuration de PHPMailer. Vos e-mails Web fonctionneront de manière transparente!

Un bonus supplémentaire est que le webmail (est-ce que quelqu'un l'utilise plus?) Est accessible à l'adresse [votredomaine]\webmail. Plus d'URL cryptique à retenir! Et les comptes peuvent être IMAP ou POP!

Certes, cela signifie que vous devez utiliser les comptes de messagerie cPanel de goDaddy, mais le fait que le formulaire Web fonctionne parfaitement avec PHPMailer a été la véritable récompense!

34
globalSchmidt

Je suis sur GoDaddy sur un Linux comme @ surfbird0713. Lors de ma 32ème tentative, les éléments suivants ont également fonctionné pour moi:

$mail2->Host = localhost;
//$mail2->SMTPAuth = false;
//$mail2->Username = '[email protected]';
//$mail2->Password = '*******';

//$mail2->SMTPSecure = 'tls';

//$mail2->Port = 465;

J'essayais précédemment avec le nom d'utilisateur, l'identifiant, le port, etc.

39
Nate Byram

Je rencontre ce problème depuis plusieurs semaines. Finalement, je l'ai résolu. Tout d'abord, je voudrais énoncer les causes du problème (comme je l'ai vécu) . GoDaddy n'autorise que le port 25, 465, 80 à sortir. Vous ne pouvez donc pas atteindre un serveur SMTP n'utilisant aucun de ces 3 ports . Mais si vous utilisez SMTP depuis GMAIL par exemple, ou tout autre serveur de relecture (en particulier de Bell Canada, sur le port 465), La demande de relais de GoDaddy sera bloquée. Vous verrez donc la fonction Connection Refused (111). Oui, ce sont des concurrents dans les services d'hébergement ... alors, tirez votre propre conclusion sur le moment où ce problème sera résolu entre eux ... Pire encore, lorsque vous envoyez un courrier électronique de relay-hosting.secureserver.net fourni par GoDaddy, vous faites face à un inconvénient majeur faire la queue peut prendre quelques minutes pour que le courrier électronique soit envoyé. Pire encore, les personnes possédant un compte de messagerie de Bell Canada (ou des sociétés affiliées de Bell) ne verront pas le courrier électronique de ce serveur de relais - le courrier électronique ne parvient même pas dans votre boîte spam! Comme l'email est complètement bloqué par Bell (leur excuse = trop de spams de GoDaddy).

Donc, récemment, je l'ai fait et cela a bien fonctionné pour moi. Si vous avez un service d'hébergement avec GoDaddy, créez un compte de messagerie. Utilisez ensuite ce compte de messagerie, exemple [email protected], avec PHPMail:

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = "smtpout.secureserver.net";
$mail->Username = "[email protected]"; /*Substitute with your real email*/
$mail->Password = "myverylongpassword"; /*Substitute with your real password*/
$mail->SMTPAuth = true;
$mail->Port = 80;

Ensuite, faites vos tâches habituelles de PHPMailing ... Cela fonctionne très bien pour moi. J'espère que ça fait la même chose pour vous.

4
KLL

Après beaucoup de frustration, cela a également fonctionné pour moi.

include("includes/class.phpmailer.php");

date_default_timezone_set('UTC');

define('SMTP_Host','relay-hosting.secureserver.net');
define('SMTP_PORT',25);**
define('SMTP_USERNAME','[email protected]');
define('SMTP_PASSWORD','me123');
define('SMTP_AUTH',false);

$email = '[email protected]';
$firstName = 'Aravind';

$mail = new PHPMailerR();
$mail->IsSMTP();
$mail->SMTPDebug = 1;                 
$mail->SMTPAuth = SMTP_AUTH;                
$mail->Host = SMTP_Host;
$mail->Port = 25;
$mail->Username = SMTP_USERNAME;
$mail->Password = SMTP_PASSWORD;
$mail->SetFrom(SMTP_USERNAME,'AravindNC.IN');
$mail->AddReplyTo(SMTP_USERNAME,"AravindNC.IN");
$mail->Subject = "Welcome to AravindNC.IN";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->MsgHTML('This is a test.');
$mail->AddAddress($email, 'Aravind NC');
$mail->Send();

?>
4
Sagar Anand

ce seront vos paramètres SMTP pour GoDaddy:

require("PHPMailer-master/PHPMailerAutoload.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug  = 2;
$mail->From = "[email protected]";
$mail->FromName = "name";
$mail->Host = "localhost"; 
$mail->SMTPAuth = false; 
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
2
Abdulrehman

J'ai le même problème mais j'ai essayé 

$mail->SMTPAuth = false;

et HOSTNAME: relay-hosting.secureserver.net

Et Bingoooooo son travail 

s'il vous plaît juste faire une fois ce paramètre dans SMTP

2
Chintan Gor

En utilisant certains des conseils ci-dessus, j'ai pu mettre en place un site d'amorçage clé en main avec la messagerie électronique sur l'hébergement partagé sur GoDaddy. 

J'ai passé un appel AJAX à email.php qui contenait:

 <?php

require 'PHPMailerAutoload.php';

if ($_POST) {
    $name    = $_POST['contactName'];
    $email   = $_POST['contactEmail'];
    $message = $_POST['contactMessage'];

    /* Don't touch */
    $mail = new PHPMailer();
    $mail->isSMTP();
    $mail->Host        = "relay-hosting.secureserver.net";
    $mail->SMTPAuth    = false;
    $mail->setFrom($email, $name);
    /* end */

    /* Configure the address the email will be sent to */
    $mail->addAddress('[email protected]', 'Adam InTae Gerard');
    $mail->Subject = 'Re: StackChampion Inquest';
    /* This is forwarded through a GoDaddy forwarding account */

    $mail->Body    = $message;

    if (!$mail->send()) {
        echo "Mailer Error: " . $mail->ErrorInfo;
    } else {
        echo "Message sent!";
    }
}
?> 

J'ai monté une démo de travail sur GitHub disponible ici:

https://github.com/Thoughtscript/wp_postlib_godaddy_php_emailer

C'est gratuit à utiliser et opensource, mais le code correspondant est répertorié ci-dessus. Il y a apparemment beaucoup de problèmes avec leurs serveurs SMTP - j'ai découvert que vous pouvez les éviter en utilisant leurs serveurs de relais proposés qui ne nécessitent pas d'authentification, bien qu'ils puissent toujours être associés à l'un de vos comptes de messagerie enregistrés.

Espérons que cela aide quelqu'un!

2
Adam Gerard

Après avoir lutté avec ce problème pendant quelques jours et l'avoir mis au travail, j'ai pensé mettre à jour ce fil pour 2017. J'espère pouvoir sauver à quelqu'un quelques heures perdues. Je suis hébergé sur Godaddy avec cpanel. C’est le paramètre SMTPAutoTLS que j’ai finalement rencontré et j’ai essayé de dire que c’était la pièce manquante. L'erreur que je recevais est la suivante:

Avertissement PHP: stream_socket_enable_crypto (): certificat homologue CN = *.prod.iad2.secureserver.net' did not match expected CN=localhost 'dans /home/username/public_html/classes/PHPMailer/class.smtp.php à la ligne 369

Erreur de messagerie: la connexion SMTP () a échoué. https://github.com/PHPMailer/PHPMailer/wiki/Dépannage

Voici les paramètres de PHPMailer qui ont fonctionné pour moi.

$mail->isSMTP();
$mail->Host = 'localhost';
$mail->Port = 25;
$mail->SMTPSecure = false;
$mail->SMTPAutoTLS = false;
$mail->SMTPAuth = false;  
1
Paul in Colorado

Selon Godaddy, remplacez

$mail->Host = "smtpout.secureserver.net"; //also tried "relay-hosting.secureserver.net"

avec

$mail->Host = "smtp.secureserver.net"; //also tried "relay-hosting.secureserver.net"

Cela a fonctionné pour moi.

1
Chicken Man

Change ça:

$mail->Host = 'smtpout.secureserver.net:465';
$mail->SMTPSecure = "ssl";

Pour ça:

$mail->Host = 'smtpout.secureserver.net:25';

et cela a fonctionné pour moi!

1
Ronen

Mise à jour pour janvier 2015: il me suffisait de résoudre ce problème. Vous devez avoir un hébergement GoDaddy linux avec des comptes de messagerie cPanel:

  1. Dans la section Comptes de messagerie, en regard de chaque adresse électronique dans une liste déroulante, cliquez sur l'option "Configurer le client de messagerie".
  2. Sur la page suivante, faites défiler jusqu'à «Paramètres manuels». Ici, vous verrez que GoDaddy crée maintenant un serveur entrant/sortant sur mesure pour chaque adresse e-mail. Utilisez donc le serveur sortant, SSL, auth: true, port: 465, email/mot de passe. 

J'espère que cela pourra aider.

1
user3349250

Si vous utilisez cPanel et WPForms dans WordPress

Ce qui m’a aidé, c’est de créer une adresse électronique à partir de cPanel Et d’utiliser ses paramètres de la section Paramètres manuels avec ou sans SSL

 enter image description here

1
Arlan T

si sur votre hébergement, vous avez un serveur de messagerie propre, votre serveur de messagerie utilise les ports suivants: Paramètres pour GoDaddy: 

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587;

Sur les autres serveurs doivent créer une boîte aux lettres avec votre domaine:

$mail->isSMTP(); 
$mail->Host = localhost; 
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';

//$mail->SMTPSecure = 'tls'; 
//$mail->Port = 587;
1
Karen Danielyan

Je viens d'avoir ce problème, j'ai contacté GoDaddy et ils ont basculé mon MX de local à distant et le problème a été résolu instantanément! Juste un avertissement pour tous ceux qui connaissent encore ce problème.

0
Austin Tans

GoDaddy/Linux (cPanel)/PHPMailer

require_once("../include/PHPMailer-master/PHPMailerAutoload.php");

$mail = new PHPMailer();
$mail->isSMTP();
$mail->Host         = "a2plcpnXXXXX.prod.iad2.secureserver.net";
$mail->SMTPDebug    = 2; 
$mail->SMTPAuth     = true;
$mail->Username     = "your username";
$mail->Password     = "your password";
$mail->SMTPSecure   = "tls";
$mail->Port         = 587;

N'hésitez pas à utiliser le nom/l'adresse e-mail de votre choix pour les valeurs $ mail-> De et $ mail-> FromName. J'espère que cela t'aides.

0
sysnomad

Godaddy est un cauchemar.

Si vous utilisez un ancien compte de messagerie de l'espace de travail et que vous ne connaissez pas cpanel, essayez ceci.

require '/home/content/94/8357694/html/SHTECH/server/PHPMailer.php';
use PHPMailer\PHPMailer\PHPMailer;

function sendmail($to,$subject,$message,$name)
{

define('SMTP_Host','relay-hosting.secureserver.net');
define('SMTP_PORT',25);
define('SMTP_AUTH',true);



              $mail             = new PHPMailer();

              $mail->IsSMTP();
              $mail -> SMTPDebug = 1;
              $mail->Host       = "smtpout.secureserver.net";
              $mail->SMTPAuth   = SMTP_AUTH;
              $mail->Port       = 80;
              $mail->Username   = "[email protected]";
              $mail->Password   = "allen1";
              //$mail->SMTPSecure = 'ssl';
              $mail->SetFrom('[email protected]', 'Cagney');
              $mail->AddReplyTo("[email protected]","Cagney");
              $mail->Subject    = $subject;
              $body             = $message;
              $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";
              $mail->MsgHTML($body);
              $address = $to;
              $mail->AddAddress($address, $name);
              if(!$mail->Send()) {
                  return 0;
              } else {
                    return 1;
              }




}
0
cagney