PHPMailer() => Pas d'envoi de mail, pas d'erreur, pas d'info
Résolu/Fermé
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
-
24 nov. 2014 à 18:22
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 26 nov. 2014 à 11:12
sipherion Messages postés 1798 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 - 26 nov. 2014 à 11:12
4 réponses
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
24 nov. 2014 à 20:11
24 nov. 2014 à 20:11
Je ne vois rien de bizarre dans tes variables;..
Mais ce qui m'étonne.. c'est qu'il ne t'affiche AUCUN des ECHO qui se trouve dans ton IF / ELSE ??
Tu peux, si ce n'est pas déjà fait, essayer d'inclure la class SMTP ?
Et tu peux aussi essayer de mettre un bloc TRY / CATCH pour voir..
Mais ce qui m'étonne.. c'est qu'il ne t'affiche AUCUN des ECHO qui se trouve dans ton IF / ELSE ??
Tu peux, si ce n'est pas déjà fait, essayer d'inclure la class SMTP ?
require_once('class.smtp.php');
Et tu peux aussi essayer de mettre un bloc TRY / CATCH pour voir..
error_reporting(E_ALL); require_once "modules/class.phpmailer.php"; require_once('modules/class.smtp.php'); try{ echo "<br> DEBUT DU PROGRAMME "; $mail_text = "Test"; $mail = new PHPMailer(); $mail->IsSMTP(); $mail->CharSet = 'UTF-8'; $mail->Host = "mail.MON-DOMAINE.fr"; // SMTP server example $mail->SMTPDebug = 1; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Port = 25; // set the SMTP port for the GMAIL server $mail->Username = "forum@MON-DOMAINE.fr"; // SMTP account username example $mail->Password = "password"; // SMTP account password example $mail->SetFrom("forum@MON-DOMAINE.fr", "Forum MON-DOMAINE"); $mail->AddReplyTo("forum@MON-DOMAINE", "Forum MON-DOMAINE"); $mail->AddAddress("sipherion_test@gmail.com"); //Adresse inexistante ^^ $mail->Subject = "Votre nouveau mot de passe sur MON-DOMAINE"; $mail->MsgHTML("$mail_text"); echo "<br> Envoie du Mail "; if ($mail->Send()) { echo "<br> Mail envoyé ! "; $success = "<font color='green'>Un mail contenant votre nouveau mot de passe vous a été envoyé.</font>"; } else { echo "<br>Erreur lors de l'envoie du mail !! "; echo $mail->ErrorInfo; } echo '<div align="center">error :'.$error.'</div>'; echo '<div align="center">success :'.$success.'</div>'; ?> } catch (phpmailerException $e) { echo $e->errorMessage(); //error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); }
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
24 nov. 2014 à 18:45
24 nov. 2014 à 18:45
Bonjour,
Je ne comprend pas ça :
Et pourtant tu marques ensuite :
.... si ta page est blanche .. et qu'il ne t'affiche rien... où t'affiche t'il tes "ok.." ??
Tu as essayé de modifié la variable de debug du smtp ?
- As tu également essayé avec du SSL (et en changeant de port) ?
-Es tu sûr des informations utilisées pour utiliser le SMTP de ton serveur ?
-> Ne pourrais tu pas tester avec un compte GMAIL par exemple ?
PS: Pour faire du débug.. n'hésites pas à mettre des variables plus parlantes que OK0..ok1....
Par exemple :
Je ne comprend pas ça :
La page est blanche, même le code source est vide
Et pourtant tu marques ensuite :
A l'exécution du script, il m'affiche bien OK 0, OK 1 et OK Pret.
.... si ta page est blanche .. et qu'il ne t'affiche rien... où t'affiche t'il tes "ok.." ??
Tu as essayé de modifié la variable de debug du smtp ?
$mail->SMTPDebug = 1;
- As tu également essayé avec du SSL (et en changeant de port) ?
-Es tu sûr des informations utilisées pour utiliser le SMTP de ton serveur ?
-> Ne pourrais tu pas tester avec un compte GMAIL par exemple ?
PS: Pour faire du débug.. n'hésites pas à mettre des variables plus parlantes que OK0..ok1....
Par exemple :
error_reporting(E_ALL); require_once "modules/class.phpmailer.php"; echo "<br> DEBUT DU PROGRAMME "; $mail_text = "Test"; $mail = new PHPMailer(); $mail->IsSMTP(); $mail->CharSet = 'UTF-8'; $mail->Host = "mail.MON-DOMAINE.fr"; // SMTP server example $mail->SMTPDebug = 1; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Port = 25; // set the SMTP port for the GMAIL server $mail->Username = "forum@MON-DOMAINE.fr"; // SMTP account username example $mail->Password = "password"; // SMTP account password example $mail->SetFrom("forum@MON-DOMAINE.fr", "Forum MON-DOMAINE"); $mail->AddReplyTo("forum@MON-DOMAINE", "Forum MON-DOMAINE"); $mail->AddAddress("sipherion_test@gmail.com"); //Adresse inexistante ^^ $mail->Subject = "Votre nouveau mot de passe sur MON-DOMAINE"; $mail->MsgHTML("$mail_text"); echo "<br> Envoie du Mail "; if ($mail->Send()) { echo "<br> Mail envoyé ! "; $success = "<font color='green'>Un mail contenant votre nouveau mot de passe vous a été envoyé.</font>"; } else { echo "<br>Erreur lors de l'envoie du mail !! "; echo $mail->ErrorInfo; } echo '<div align="center">error :'.$error.'</div>'; echo '<div align="center">success :'.$success.'</div>'; ?>
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
24 nov. 2014 à 19:06
24 nov. 2014 à 19:06
Merci pour ta réponse.
- J'ai ajouté les echo après mes tests initiaux, donc si tu préfères en dehors de ces OK, rien ne s'affiche. Dans le code source de la page, j'ai bien les "OK" qui s'affichent.
- De base, la variable $mail->SMTPDebug est à 0, je l'ai mise à 1 pour voir s'il y avait des erreurs, puis j'ai vu quelqu'un qui la mettait à 2 quand j'ai recherché d'autres exemples sur le net. Résultat identique, pas de retour du serveur SMTP.
- Sur le même serveur, j'ai un forum IPB qui tourne avec les mêmes informations SMTP, et ça fonctionne (je n'ai pas réussi à trouver quelle fonction PHP IPB utilise pour envoyer ses mails, mais je suppose que c'est un dérivé de PHPMailer)
- Ca tombe bien, j'ai un compte Gmail, j'ai mis les informations comme si je configurais un Outlook, le mail ne part pas non plus, et pas plus d'informations de la part du script.
- Je suis d'accord avec toi pour les echos, j'ai fais ça vite fait, j'en ai marre de chercher ^^ Faut juste savoir quel OK X se trouve où dans le code ;-)
- J'ai ajouté les echo après mes tests initiaux, donc si tu préfères en dehors de ces OK, rien ne s'affiche. Dans le code source de la page, j'ai bien les "OK" qui s'affichent.
- De base, la variable $mail->SMTPDebug est à 0, je l'ai mise à 1 pour voir s'il y avait des erreurs, puis j'ai vu quelqu'un qui la mettait à 2 quand j'ai recherché d'autres exemples sur le net. Résultat identique, pas de retour du serveur SMTP.
- Sur le même serveur, j'ai un forum IPB qui tourne avec les mêmes informations SMTP, et ça fonctionne (je n'ai pas réussi à trouver quelle fonction PHP IPB utilise pour envoyer ses mails, mais je suppose que c'est un dérivé de PHPMailer)
- Ca tombe bien, j'ai un compte Gmail, j'ai mis les informations comme si je configurais un Outlook, le mail ne part pas non plus, et pas plus d'informations de la part du script.
- Je suis d'accord avec toi pour les echos, j'ai fais ça vite fait, j'en ai marre de chercher ^^ Faut juste savoir quel OK X se trouve où dans le code ;-)
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
24 nov. 2014 à 19:20
24 nov. 2014 à 19:20
Tu as essayé .. ne serait ce que la parti du IF que je t'ai mis ?
... ca t'affiche quoi ???
if ($mail->Send()) { echo "<br> Mail envoyé ! "; $success = "<font color='green'>Un mail contenant votre nouveau mot de passe vous a été envoyé.</font>"; } else { echo "<br>Erreur lors de l'envoie du mail !! "; echo $mail->ErrorInfo; }
... ca t'affiche quoi ???
jordane45
Messages postés
38137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
24 nov. 2014 à 19:23
24 nov. 2014 à 19:23
Tu peux aussi faire un :
Juste avant le if ....
Qu'est-ce qu'il t'affiche ??
print_r($mail);
Juste avant le if ....
Qu'est-ce qu'il t'affiche ??
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
24 nov. 2014 à 19:23
24 nov. 2014 à 19:23
Allez, puisque tu m'aides, je vais mettre tes messages ;-)
<br> DEBUT DU PROGRAMME <br> Envoie du Mail
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
Modifié par jordane45 le 24/11/2014 à 20:06
Modifié par jordane45 le 24/11/2014 à 20:06
Object ( [Version] => 5.2.9 [Priority] => 3 [CharSet] => UTF-8 [ContentType] => text/html [Encoding] => 8bit [ErrorInfo] => [From] => forum@MON-DOMAINE.fr [FromName] => Forum MON-DOMAINE [Sender] => forum@MON-DOMAINE.fr [ReturnPath] => [Subject] => Votre nouveau mot de passe sur MON-DOMAINE [Body] => Test [AltBody] => Test [Ical] => [MIMEBody:protected] => [MIMEHeader:protected] => [mailHeader:protected] => [WordWrap] => 0 [Mailer] => smtp [Sendmail] => /usr/sbin/sendmail [UseSendmailOptions] => 1 [PluginDir] => [ConfirmReadingTo] => [Hostname] => [MessageID] => [MessageDate] => [Host] => mail.MON-DOMAINE.fr [Port] => 25 [Helo] => [SMTPSecure] => [SMTPAuth] => 1 [Username] => forum@MON-DOMAINE.fr [Password] => PASSWORD [AuthType] => [Realm] => [Workstation] => [Timeout] => 300 [SMTPDebug] => 0 [Debugoutput] => echo [SMTPKeepAlive] => [SingleTo] => [SingleToArray] => Array ( ) [do_verp] => [AllowEmpty] => [LE] => [DKIM_selector] => [DKIM_identity] => [DKIM_passphrase] => [DKIM_domain] => [DKIM_private] => [action_function] => [XMailer] => [smtp:protected] => [to:protected] => Array ( [0] => Array ( [0] => sipheriondfbdfb@gmail.com [1] => ) ) [cc:protected] => Array ( ) [bcc:protected] => Array ( ) [ReplyTo:protected] => Array ( [forum@MON-DOMAINE.fr] => Array ( [0] => forum@MON-DOMAINE.fr [1] => Forum MON-DOMAINE ) ) [all_recipients:protected] => Array ( [sipherionsdfsdfsf@gmail.com] => 1 ) [attachment:protected] => Array ( ) [CustomHeader:protected] => Array ( ) [lastMessageID:protected] => [message_type:protected] => [boundary:protected] => Array ( ) [language:protected] => Array ( ) [error_count:protected] => 0 [sign_cert_file:protected] => [sign_key_file:protected] => [sign_key_pass:protected] => [exceptions:protected] => )
J'ai remplacé les informations en modifiant les adresses mail et en remplaçant le domaine.
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
Modifié par sipherion le 24/11/2014 à 19:25
Modifié par sipherion le 24/11/2014 à 19:25
Question :
Est ce que malgré l'instruction
"Il vaut mieux savoir tout chercher que chercher à tout savoir."
Est ce que malgré l'instruction
error_reporting(E_ALL);il peut y avoir un paramètre qui l'écrase ? Car je n'ai rien d'autre sur mon fichier, et quand je met des noms de variables bidons je n'ai pas de message d'erreur, idem si je provoque une erreur (genre oubli d'une parenthèse), pas d'erreur php :$ Config serveur ? Apache ?
"Il vaut mieux savoir tout chercher que chercher à tout savoir."
sipherion
Messages postés
1798
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
19 décembre 2016
285
26 nov. 2014 à 11:12
26 nov. 2014 à 11:12
J'avais effectivement une option dans le fichier .htaccess qui demandait de n'afficher aucune erreur PHP. Donc les infos du .htaccess ont priorité sur le code PHP.
Modifié par sipherion le 24/11/2014 à 20:39
En ajoutant la class smtp ça fonctionne.....
Comment ? C'est bizarre, j'ai trouvé cette information nulle part !!
Un très grand merci à toi ! Si j'avais su, j'aurais fais un include de toutes les class de PHPMailer ! =)