retour erreur de la fonction php mail() - PHP - Programmation
Marsh Posté le 23-11-2004 à 14:04:32
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.
|
Code :
|
voila un bout de code version light donc la variable $mail ne sert a rien.
tu peux faire ceci
Code :
|
Mais ne fait pas de
Code :
|
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
Marsh Posté le 23-11-2004 à 14:14:16
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 ?
Marsh Posté le 23-11-2004 à 14:16:58
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!
Marsh Posté le 23-11-2004 à 14:18:34
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.
Marsh Posté le 23-11-2004 à 14:33:48
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?
Marsh Posté le 23-11-2004 à 14:58:16
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.
Marsh Posté le 23-11-2004 à 15:10:34
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?!
Marsh Posté le 23-11-2004 à 15:13:41
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.
Marsh Posté le 23-11-2004 à 15:53:21
et quel serait le principe comment je pourrais juger du retour?
Marsh Posté le 23-11-2004 à 16:04:36
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...
Marsh Posté le 23-11-2004 à 16:08:38
mais c'est une exellente idée ca! gg!
Mais ouais trop bien! j'y avais vraiment pas pensé!
Marsh Posté le 23-11-2004 à 16:14:24
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
Code :
|
Ce fichier peut etre lu dans une balise img.
Marsh Posté le 23-11-2004 à 18:58:58
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. |
Ce "webbug", celui du pixel invisible est désactivé par deffaut sur plusieurs serveur de mail (comme hotmail)
A+
Marsh Posté le 23-11-2004 à 19:03:02
esox_ch a écrit : Ce "webbug", celui du pixel invisible est désactivé par deffaut sur plusieurs serveur de mail (comme hotmail) |
Non, il la rend visible ça sera une simple image. Exemple : un logo.
Marsh Posté le 24-11-2004 à 06:50:04
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?
Marsh Posté le 24-11-2004 à 09:26:47
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 !?
Marsh Posté le 24-11-2004 à 13:23:55
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". |
la majorité des bons clients mail intègre aussi ce principe, ça rend la solution "fichier image.php" un peu caduque à mon sens
Marsh Posté le 25-11-2004 à 18:51:04
Berceker United a écrit : Arrêté de vous braquez sur hotmail. |
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.
Marsh Posté le 25-11-2004 à 19:09:48
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.
Marsh Posté le 17-12-2010 à 14:12:37
en localhost, y'à t-il un fichier log des envois mails ?
( hors serveur de production, en environnement windows )
Marsh Posté le 17-12-2010 à 16:20:18
6 ans après ... pas mal
Marsh Posté le 19-12-2010 à 23:46:01
le monsieur est intelligent il remonte un topic en posant une question, il ne vient pas répondre à une question morte depuis 6 ans
Marsh Posté le 20-12-2010 à 11:40:42
Oui bon faut voir aussi la question hein
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.
Marsh Posté le 23-11-2004 à 13:55:33
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 :
$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é.