Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1365 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  retour erreur de la fonction php mail()

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

retour erreur de la fonction php mail()

n°905498
pitchdesig​n
Posté le 23-11-2004 à 13:55:33  profilanswer
 

Voilà j'utilise la fonction mail pour envoyer une newsletter à environ 2000 abonnés et je suis sûr qu'il y a des mails erronés ou plus valides dans ma bdd, cependant la fonction mail() ne me renvoie aucune erreur et me dit que tous les mails ont été envoyés.
 
Est ce normal ?
Y a t-il une autre manière de le vérifier autre qu'en testant la foncion mail () apres son exécution ?
Merci pour vos éclaircissements!
 
Voilà mon code :
 

Citation :

$mail=mysql_result($TableRep,$i,"mail" );
 $date=mysql_result($TableRep,$i,"date" );
 $email=mail($mail, $subject, $message, $headers);
    if ($email=='1') {
 echo "<tr><td align=\"center\">$date</td><th>$mail</th><td align=\"center\">OK</td><tr>\n";
 } else {
 echo "<tr><td align=\"center\">$date</td><th>$mail</th><td align=\"center\"><input type=\"checkbox\" name=\"case[]\" value=\"".mysql_result($TableRep,$i,"id" )."\" checked></td><tr>\n";
 }
 $i++;


 
Brièvement le code me renvoie OK pour le mail envoyé et une checkbox déjà coché si le mail n'est pas envoyé.

mood
Publicité
Posté le 23-11-2004 à 13:55:33  profilanswer
 

n°905508
Berceker U​nited
PSN : berceker_united
Posté le 23-11-2004 à 14:04:32  profilanswer
 

pitchdesign a écrit :

Voilà j'utilise la fonction mail pour envoyer une newsletter à environ 2000 abonnés et je suis sûr qu'il y a des mails erronés ou plus valides dans ma bdd, cependant la fonction mail() ne me renvoie aucune erreur et me dit que tous les mails ont été envoyés.
 
Est ce normal ?
Y a t-il une autre manière de le vérifier autre qu'en testant la foncion mail () apres son exécution ?
Merci pour vos éclaircissements!
 
Voilà mon code :
 

Citation :

$mail=mysql_result($TableRep,$i,"mail" );
 $date=mysql_result($TableRep,$i,"date" );
 $email=mail($mail, $subject, $message, $headers);
    if ($email=='1') {
 echo "<tr><td align=\"center\">$date</td><th>$mail</th><td align=\"center\">OK</td><tr>\n";
 } else {
 echo "<tr><td align=\"center\">$date</td><th>$mail</th><td align=\"center\"><input type=\"checkbox\" name=\"case[]\" value=\"".mysql_result($TableRep,$i,"id" )."\" checked></td><tr>\n";
 }
 $i++;


 
Brièvement le code me renvoie OK pour le mail envoyé et une checkbox déjà coché si le mail n'est pas envoyé.


 
 

Code :
  1. if(mail($mail, $subject, $message, $headers)){
  2.   echo "Mail envoyé avec succès"
  3. }else{
  4.   echo "Erreur sur ce mail :". $mail;
  5. }


 
 
voila un bout de code version light donc la variable $mail ne sert a rien.
tu peux faire ceci
 

Code :
  1. if(mail(...) == true)
  2. if(mail(...))
  3. if(mail(...)==1)


 
 :non: Mais ne fait pas de  
 

Code :
  1. if(mail()=='1')


La fonction mail ne te renvoy pas une chaine de caractere mais une valeur numérique. Peut etre que ça passe quand même mais un jour ca va te reserver un surprise et tu ne seras d'ou ça vien.
Prend de bonne habitude  [:papy]  

n°905532
pitchdesig​n
Posté le 23-11-2004 à 14:14:16  profilanswer
 

merci j'essayerais dès ce soir en zappant la variable $email et en utilisant ton code light sans déclarer de variable supplémentaire!
C'est étonnant tout de même car pour tout vous dire, il me génère l'erreur avec checkbox lorsque j'essaie d'envoyer la newsletter a une adresse mail non valide sur mon domaine et pas à d'autres adresses non valides sur d'autres domaines.
Est ce normal ca aussi ?

n°905537
bob007
Posté le 23-11-2004 à 14:16:58  profilanswer
 

je pense que oui. Mail il envoit le mail un point c'est tout!
Kan mail() échoue, c'est que lui il a pu ENVOYER le mail.
 
Rien à vois avec le fait que le mail soit recu ou pas, enfin je pense! :)

n°905542
Berceker U​nited
PSN : berceker_united
Posté le 23-11-2004 à 14:18:34  profilanswer
 

Effectivement, la fonction mail n'attend pas de retour du serveur pour savoir si le mail est valide. Il balance le mail et ne prend pas la responsabilité. Quoi que, il me semble que oui en partie mais je me rappelle plus sur quel critère.

n°905567
pitchdesig​n
Posté le 23-11-2004 à 14:33:48  profilanswer
 

ok donc tout s'explique et y aurait il une solution pour envoyer le mail et savoir en retour si le compte du destinataire est bien valide et de vérifier ke le mail est arrivé à bon port?
solution en php ou autres si vous savez?

n°905627
Berceker U​nited
PSN : berceker_united
Posté le 23-11-2004 à 14:58:16  profilanswer
 

De tête mais ce n'est qu'un premier jet. Ce que j'ai en tete ne fonctionne que si le destinataire lit le mail.
Tu peux mettre une image dans le mail qui a cette forme.
<img src="htttp://ton.site.com/image.php?id=xxxxxx">
 
Dans le fichier image.php tu regarde a qui correspond cette id. tu peux savoir qui a lu le mail ou pas. Mais pour voir l'image il faut faire un p'tit truc , si tu es interessé je peux te passer le script pour faire afficher une image dans un fichier php.

n°905648
pitchdesig​n
Posté le 23-11-2004 à 15:10:34  profilanswer
 

ouai je veux bien car j'avais justement pensé à faire quelquechose de la sorte !
cad placez un indicateur ds le mail ki me renverrait si le mail a bien été lu... mais je ne sais pas encore koi utiliser?!

n°905655
Berceker U​nited
PSN : berceker_united
Posté le 23-11-2004 à 15:13:41  profilanswer
 

ok je te placerais le code ver la fin de l'après midi. En gros c'est pour afficher une image en y plaçant du code php tous simplement.

n°905703
pitchdesig​n
Posté le 23-11-2004 à 15:53:21  profilanswer
 

et quel serait le principe comment je pourrais juger du retour?

mood
Publicité
Posté le 23-11-2004 à 15:53:21  profilanswer
 

n°905714
Berceker U​nited
PSN : berceker_united
Posté le 23-11-2004 à 16:04:36  profilanswer
 

lorsque le mail sera lu il va executer le fichier image.php?id=xxxx c'est totalement invisible pour le destinataire. Non seulement il va afficher l'image mais il va en plus executer un scripte.
Derriere il suffit de faire un scripte qui capte l'id et tu en fait ce que tu veux. tu le place en base ou tu l'envoy par mail ect...

n°905723
bob007
Posté le 23-11-2004 à 16:08:38  profilanswer
 

mais c'est une exellente idée ca! gg!
Mais ouais trop bien! j'y avais vraiment pas pensé!

n°905737
Berceker U​nited
PSN : berceker_united
Posté le 23-11-2004 à 16:14:24  profilanswer
 

Voici un code qui permet d'afficher l'image. Regarde le j'ai pas nettoyé le code mais tu comprendras.
Ne prétez pas attention sur les syntaxe et autre norme, c'est un code que j'ai pondu à mes début en php :D
 
 

Code :
  1. <?
  2. header("Pragma: no-cache" );
  3. header("Expires: 0" );
  4. header("Last-Modified: " . gmdate("D, d M Y H:i:s" ) . " GMT" );
  5. header("Cache-Control: no-cache, must-revalidate" );
  6. header("Content-type: image/jpeg" );
  7. $id=1;
  8. include"../scripts/connection.inc";
  9. include"../scripts/function_site.inc";
  10. $idtable = $HTTP_GET_VARS['idtable'];
  11. $idimage = $HTTP_GET_VARS['idimage'];
  12.   click($idtable,$idimage,$REMOTE_ADDR);
  13. $url_image=$tab_site["url_image_secur"].$tab_site["url_image"];
  14.          $req_table ="SELECT nom FROM y_table WHERE idtable=".$idtable;
  15.          $res_table =mysql_query($req_table);
  16.          $tab_table =mysql_fetch_array($res_table);
  17.          $res_img ="SELECT nom FROM ".$tab_table[0]." WHERE idimage=".$idimage;
  18.          $res_img =@mysql_query($res_img);
  19.          $tab_img =@mysql_fetch_array($res_img);
  20. readfile($url_image.$tab_table[0]."/".$tab_img[0]);
  21. ?>


 
 
Ce fichier peut etre lu dans une balise img.


Message édité par Berceker United le 23-11-2004 à 16:15:52
n°905936
esox_ch
Posté le 23-11-2004 à 18:58:58  profilanswer
 

berceker united a écrit :

De tête mais ce n'est qu'un premier jet. Ce que j'ai en tete ne fonctionne que si le destinataire lit le mail.
Tu peux mettre une image dans le mail qui a cette forme.
<img src="htttp://ton.site.com/image.php?id=xxxxxx">
 
Dans le fichier image.php tu regarde a qui correspond cette id. tu peux savoir qui a lu le mail ou pas. Mais pour voir l'image il faut faire un p'tit truc , si tu es interessé je peux te passer le script pour faire afficher une image dans un fichier php.


 
Ce "webbug", celui du pixel invisible est désactivé par deffaut sur plusieurs serveur de mail (comme hotmail)
 
A+

n°905944
Berceker U​nited
PSN : berceker_united
Posté le 23-11-2004 à 19:03:02  profilanswer
 

esox_ch a écrit :

Ce "webbug", celui du pixel invisible est désactivé par deffaut sur plusieurs serveur de mail (comme hotmail)
 
A+


Non, il la rend visible ça sera une simple image. Exemple : un logo.

n°906253
esox_ch
Posté le 24-11-2004 à 06:50:04  profilanswer
 

Berceker United a écrit :

Non, il la rend visible ça sera une simple image. Exemple : un logo.


 
C'est bien ce que je dis, actuellement chaque fois que je recois un email html contenant des images, hotmail les "desactive" et met une petite banderolle disant "Si tu veux afficher l'image clique ici".
 
A moin que l'utilisateur soit stupide il y a peu de chances qu'il active le webbug non?

n°906287
pitchdesig​n
Posté le 24-11-2004 à 09:26:47  profilanswer
 

il désactive les images lorsque le mail est lu depuis le dossier "courrier indésirable" il me semble et pas dans la boite de réception !?

n°906489
j_lecruel
☀ ☁ ☂
Posté le 24-11-2004 à 13:01:22  profilanswer
 

+1

n°906505
naceroth
Posté le 24-11-2004 à 13:23:55  profilanswer
 

esox_ch a écrit :

C'est bien ce que je dis, actuellement chaque fois que je recois un email html contenant des images, hotmail les "desactive" et met une petite banderolle disant "Si tu veux afficher l'image clique ici".
 
A moin que l'utilisateur soit stupide il y a peu de chances qu'il active le webbug non?


 
la majorité des bons clients mail intègre aussi ce principe, ça rend la solution "fichier image.php" un peu caduque à mon sens :/

n°907568
pitchdesig​n
Posté le 25-11-2004 à 12:24:07  profilanswer
 

vous auriez donc une solution alternative ?

n°907625
Berceker U​nited
PSN : berceker_united
Posté le 25-11-2004 à 13:37:19  profilanswer
 

Arrêté de vous braquez sur hotmail.:o

n°907914
naceroth
Posté le 25-11-2004 à 18:51:04  profilanswer
 

Berceker United a écrit :

Arrêté de vous braquez sur hotmail.:o


 
On ne se braque pas, on te dit que ta solution pose problème pour tout les clients mails n'affichant pas les mails au format html, ce qui représente une part non négligeable des clients mails actuels.

n°907925
Berceker U​nited
PSN : berceker_united
Posté le 25-11-2004 à 19:09:48  profilanswer
 

naceroth a écrit :

On ne se braque pas, on te dit que ta solution pose problème pour tout les clients mails n'affichant pas les mails au format html, ce qui représente une part non négligeable des clients mails actuels.


Donc indiquer que si le mail et qu'il souhaite le voir en mode texte "veuillez cliquer sur ce lien". A partir de là il clique sur un fichier présent sur le serveur et la il peut capter les mails arriver chez le destinataire, à partir du moment ou ils ont cliquer sur le lien.

n°2042886
grosbin
OR die;
Posté le 17-12-2010 à 14:12:37  profilanswer
 

en localhost, y'à t-il un fichier log des envois mails ?
( hors serveur de production, en environnement windows )


Message édité par grosbin le 17-12-2010 à 14:14:31

---------------
Photos Panoramiques Montagnes Haute Savoie
n°2042934
esox_ch
Posté le 17-12-2010 à 16:20:18  profilanswer
 

6 ans après ... pas mal :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2043192
gatsu35
Blablaté par Harko
Posté le 19-12-2010 à 23:46:01  profilanswer
 

le monsieur est intelligent il remonte un topic en posant une question, il ne vient pas répondre à une question morte depuis 6 ans :o


---------------
Blablaté par Harko
n°2043256
esox_ch
Posté le 20-12-2010 à 11:40:42  profilanswer
 

Oui bon faut voir aussi la question hein :o
 
Sans compter que :
- Je crois que la règle "on ne squatte pas les topic des autres" est toujours en vigueur.
- Il dit pas ce qu'est sont serveur d'envoi
- Son "en localhost" ne veut rien dire (il veut savoir les e-mails vers localhost? Depuis localhost? Transitant par le serveur local?)
- Une fois que ces questions seront éclaircies, une recherche google de 20 sec lui donnerait la réponse.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  retour erreur de la fonction php mail()

 

Sujets relatifs
Probleme erreur Tomcat[Perl] fonction sysread
Erreur 500 --> .htaccessPb avec ma fonction récursive
Rendre une fonction generalisable...pb mail php pieces jointes
Mettre une table à jour en fonction d'une autre de referenceMessage d'erreur en C++
FTP / Erreur 10048Comparaison de CString tenant compte d'une erreur de saisie
Plus de sujets relatifs à : retour erreur de la fonction php mail()


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR