Bonjour.
Il y a quelques mois j'ai développé une application web pour une entreprise notamment pour la création de demande d'intervention.
A la suite de cette création de demande, le serveur devait envoyé un mail automatiquement à l'adresse du service pour qui je développais l'application en passant par une adresse créée uniquement pour ça.
Au départ j'avais utilisé gmail mais le fait est qu'il faut vérifier l'adresse mail au bout d'un certain temps d'inactivité et tant que ce n'est pas fait manuellement, l'envoi de mail ne se fait pas, ce qui est assez contraignant.
J'ai donc essayé avec une adresse créée sur le nom de domaine de l'application (chez OVH), au départ tout fonctionnait bien puis il y a une semaine le problème SMTP connect() failed est survenu. J'ai essayé plusieurs choses mais cela ne changeait rien. Dans un moment de désespoir j'ai donc supprimé et recréé l'adresse mail, cela a fonctionné.. une journée.
J'ai donc essayé aujourd'hui de le faire avec le SMTP de hotmail (smtp.live.com), mais cela ne fonctionne toujours pas et j'ai eu cette erreur quand j'ai paramétré le SMTPDebug sur 2 :
Mon code est réparti de deux façons. Tout d'abord dans un fichier configmail.php il y a la configuration générale, de base, qui est utilisé par les différents autres fichiers pour l'envoi de mail. Dans ce fichier il y a actuellement deux parties, la première concerne le test avec le SMTP de OVH (mis en commentaire pour le moment sur mon serveur), l'autre celui avec le SMTP de hotmail.SMTP ERROR: Failed to connect to server: Connection refused (111) SMTP connect() failed.
Ensuite je vais prendre comme exemple le bout de code dans le fichier de création de demande d'intervention.
configmail.php (OVH) :
configmail.php (HOTMAIL) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 require "PHPMailer-master/class.phpmailer.php"; require "PHPMailer-master/class.smtp.php"; $mail = new PHPmailer(); $mail->IsSMTP(); $mail->Host='smtp.mondomaine.com'; $mail->SMTPAuth = true; $mail->SMTPSecure='ssl'; $mail->Port='465'; $mail->Username='monadresse@mondomaine.com'; $mail->Password='mdp'; $mail->From='monadresse@mondomaine.com'; $mail->FromName='Application'; $mail->AddAddress('adresseservice@nomentreprise.fr'); $mail->AddReplyTo('monadresse@mondomaine.com');
Fichier contenant le code pour l'envoi de mail :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 require "PHPMailer-master/class.phpmailer.php"; require "PHPMailer-master/class.smtp.php"; $mail = new PHPmailer(); $mail->IsSMTP(); $mail->Host='smtp.live.com'; $mail->SMTPAuth = true; $mail->SMTPSecure='tls'; $mail->Port='587'; $mail->SMTPDebug = 2; $mail->Username='monadresse@hotmail.com'; $mail->Password='mdp'; $mail->From='monadresse@hotmail.com'; $mail->FromName='Application'; $mail->AddAddress('adresseservice@nomentreprise.fr'); $mail->AddReplyTo('monadresse@hotmail.com');
De base le message du mail contient plusieurs lignes d'informations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 //Envoi du mail de confirmation avec les infos de la demande d'intervention. require('configmail.php'); $mail->Subject=utf8_decode("La DI n°".($idDI)." a été créée par le ".$_SESSION['infra']." de ".$_SESSION['site']."."); $mail->IsHTML(true); if($numEquip == null){ $message = "Informations sur la DI."; } else{ $message = "Informations sur la DI contenant le numEquip."; } $message = wordwrap($message, 70, "\n"); $mail->Body=utf8_decode($message); if(!$mail->Send()){ //Teste le return code de la fonction echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7) } else{ echo "Votre demande n°".($idDI)." a été créée et transmise au service".'<br />'; } $mail->SmtpClose(); unset($mail);
Je cherche depuis plusieurs jours sans réponses et le lancement de l'outil approche de plus en plus, si vous avez des solutions ou un autre SMTP qui fonctionne à coup sûr je suis preneur.
Partager