Bonjour,
La fonction MAIL permet d'nvoyer un message.
Quel paramètre doit-t-on envoyer pour recevoir un messaeg dans le cas où le message n'a pu être distribué (adresse fause par exemple)
Merci pour l'aide
Bonjour,
La fonction MAIL permet d'nvoyer un message.
Quel paramètre doit-t-on envoyer pour recevoir un messaeg dans le cas où le message n'a pu être distribué (adresse fause par exemple)
Merci pour l'aide
Salut !
Comme déjà dit et redis, une adresse invalide concerne le protocole d'envoie de Mail (protocole SMTP) quand ce protocole entre en jeu pour la distribution effective du mail, la fonction a fini de s'exécuter depuis longtemps... il faut simplement indiquer une adresse de départ du mail qui soit valide, le mesage d'erreur sera envoyé à cette adresse
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag(en bas)
hello comme dit ci-dessus ce que tu demande est impossible pour cette fonction en fait tu dois faire le controle avant d'envoyer tes mails.
pour le controle voici.
Voila j'espère que cela t'aidera.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164 <? /* =============================================================================== == == == == == Fonction permettant de verifier une adresse mail. == == Cette fonction va verifier l'adresse mail fournie en argument == == de plusieurs manières. Premièrement a l'aide d'expressions régulière == == afin de vérifier la syntaxe de celle-ci. == == ensuite une verification mx afin de verifier le domaine == == et puis une connection sur le serveur afin de valider l'user == == == == function verif_email($email,$debug) == == == == $email adresse à verifier. == == $debug information de deboguage. == == == == == =============================================================================== */ function verif_email($email,$debug=false) { global $HTTP_HOST; $Return= array(); /* Tableau pour contenir les info que la fct renvoie. $return['0'] = true/false état. $return['1'] = message. Nous sommes au commencement de nos test ici nous allons validé la syntaxe utilisé dans la variable $email. fonction utilisé eregi(); */ if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)) { /* Pour plus d'information sur la fonction eregi() veuillez voir : l'excellente page */ $Return[0]=false; $Return[1]="${email} cet E-Mail n'as pas la bonne syntaxe."; if ($debug) echo "Erreur : ${email} cet E-Mail n'as pas la bonne syntaxe.<br>"; return $Return; }//fin if regexp. else if($debug) echo "Confirmation : ${email} cet E-Mail n'as pas la bonne syntaxe.<br>"; /* Notre première étape franchie avec succès, nous devons maintenant verifier l'existance d'un serveur a cette adresse. pour ce faire nous allons prendre la variable $email, et la diviser en ces deux composante. d'une part l'utilisateur et d'autre part le domaines une adresse mail ayant la forme <a href="mailto:utilisateur@domaine.com">utilisateur@domaine.com</a>. nous allons créer deux variables pour contenir cela $util utilisateur $domaine le domaine. voyons cela en action. */ list ( $util, $domaine ) = split ("@",$email); /* maintenant on check l'existance du domaine. 1) checkdnsrr */ if ( checkdnsrr ( $domaine, "MX" ) ) { if($debug) echo "Confirmation : MX record du {$domaine} existe.<br>"; /* nous sauvons l'adress du mx record pour testerl'existence de serveur mail sur le domaine. 1) getmxrr: */ if ( getmxrr ($domaine, $mxHote)) { if($debug) { echo "Confirmation : MX record du {$domaine} confirmer par MX LOOKUP.<br>"; for ( $i = 0,$j = 1; $i < count ( $mxHote ); $i++,$j++ ) { echo " Result($j) - $mxHote[$i]<BR>"; } // fin for } //fin if debug } //fin if getmxrr /* la fonction getmxrr a stocké les information concernant les mx records dans le tableau $mxHote nous allons employé l'une de ces valeurs pour notre connection. */ $cible= $mxHote[0]; }//fin if checkdnsrr else { // si il n'y a pas de MX record simplement prendre le $domaine comme adresse pour la connection socket . $cible = $domaine; if ($debug) echo "Confirmation : MX record du {$domaine} n'existe pas.<br>"; } //fin else checkdnsrr. /* nous sommes a la dernière étape a ce stade nous savons que l'adresse à une syntaxe valide et nous savons si le serveur mail est renseigné. nous allons donc ouvrir une session sur l'hote $mxHote et si nous obtenons une réponse valide allons checker l'utilisateur. 1) fsockopen: */ $connection= fsockopen ($cible,25); if ($connection) { if ($debug) echo "Connection réussie sur {$cible} SMTP.<br>"; /* la connection est réussie sur le serveur smtp. nous devons donc normalement recevoir une reponse contenant le code 220 plus d'information sur le protocol smtp: 1) fgets: */ if ( ereg ( "^220", $Out = fgets ( $Connect, 1024 ) ) ) { // nous saluons le serveur smtp. fputs ( $connection, "HELO $HTTP_HOSTrn" ); if ($debug) echo "en cours : HELO $HTTP_HOST<br>"; $Out = fgets ( $connection, 1024 ); // reception reponse serveur. // envois de l'adresse de l'envoyeur au serveur. fputs ( $connection, "MAIL FROM: <{$email}>rn" ); if ($debug) echo "en cours : MAIL FROM: <{$email}><br>"; $From = fgets ( $connection, 1024 ); // reception reponse serveur. // envois de l'adresse cible. fputs ( $connection, "RCPT TO: <{$email}>rn" ); if ($debug) echo "en cours : RCPT TO: <{$email}><br>"; $To = fgets ( $Connect, 1024 ); // reception reponse serveur. // cloture de la connection. fputs ( $connection, "QUITrn"); if ($debug) echo "en cours : QUIT<br>"; fclose($connection); // nous verifions les reponse du serveur a propos de la commande to et mail. // le serveur renvois le code 550 si elle n'existe pas // check du mailbox. if ( !ereg ( "^250", $From ) || !ereg ( "^250", $To )) { $Return[0]=false; $Return[1]="{$email} le serveur rejete l'adresse."; if ($debug) echo "{$email} le serveur rejete l'adresse.<br>"; return $Return; } } }//fin if $connection else { $Return[0]=false; $Return[1]="connection impossible E-Mail server ({$cible})."; if ($debug) echo "connection impossible E-Mail server ({$cible}).<br>"; return $Return; } $Return[0]=true; $Return[1]="{$email} cet email est valide"; return $Return; } //fin verif_email. ?>
Tim
+ pièce jointe !
Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [ code ] (bouton #) et au tag(en bas)
merci pour les renseignements.
J'essayerai la semaine prochaine.
Pas le temps pour l'instant.
Mais je vois que le pb se pose pour d'autres ( message : mail() et email invalide )
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager