Php:savoir que le recepteur ouvre leur mail

Fermé
hammadi - 17 juil. 2007 à 15:16
 hammadi - 26 juil. 2007 à 15:46
bonjour a tous .
jai fais une formulaire pour l'envoi d'email en php avec mail(). et sa marche bien.
Le probléme c que je veut savoir est ce que l'email qui envoyé par le mien est ouvert ou non .
j'ai deja fais une recherche sur ce sujet ,jai trouvé la méthode "spypixel" qui envoi avec l'email en format html une image dans une balise img,mais je ne comprend pas comment elle fonctionne?
si vous avez une idée .svp
Merci d'avance pour toute aide,
A voir également:

10 réponses

merci pour tes conseil
voila ce que je fait,mais ca ne marche pas ,
page1.php // sa marche bien
//trairement
$query="INSERT INTO email(id_user,compteur) VALUES ('','0')";
mysql_query($query)//jai inséré dans la base lemail envoyé
$idmail=mysql_insert_id();//générer l'id de cette insertion.
$headers = "MIME-Version: 1.0\r\n";
$headers .= "content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: "exemple@yahoo.fr"\n\r" ;
$message= "<html align=\"center\"><img src=\"http://localhost/image.php? &id=".$idmail."\" width=\"1\" height=\"1\"/><h5>"ici le message"</h5></html>";//jai envoyé le message avec format html avec limage et avec lidentifiant
mail($des, $sujet, $message, $headers) or die("erreur d'envoi d'email");
//puis jenvooi le messge et ca marche bien via smtp de FAI en local


image.php//
if(!empty($_GET['id']) && (int)$_GET['id']>0){
// Traitement de l'info avec l'id
$id=$_GET['id'];
//connection a la base
$reponse1 = mysql_query("SELECT * FROM email where id_user='$id' ")
//je selectionne lemail de la base suivant lid retourné par lemail
$donnees = mysql_fetch_array($reponse1);
$comp=$donnees['compteur'];//le compteur est par defaut zero.mon but c que chaq fois lemail souvre jincremete 1 dans le champ compteur
$comp=$comp+1;
$sql= "UPDATE user SET compteur='$comp' WHERE id_user='$id'";
//modifier la nouvelle valeur du compteur
}
//redirection vers image.jpg
header ('http://img233.imageshack.us/img233/4408/imagemw3.jpg')
mais incrementationca ne marche pas
jesper que vous maider .
1
Salut !
En faite l'image contenu dans le mail est stoké sur un serveur web. lorsque le client essai d'ouvrir l'image contenu dans le mail, il va donc aller lire l'image sur le serveur.
Il y a donc un appel au serveur lors de la lecture de l'image et donc du mail. Le simple appel vers le serveur peu déclenchez des scripts coté serveur pour par exemple détecter signaler la lecture du mail.

en faite l'image est générer pas un script serveur. techniquement c un mélange d'"URL rewriting" et génération d'image.
Note tout de meme que la plupart des client mail moderne ne lise pas les images incorporé au mail (.. par défaut).
Heu... j'ai été clair ?
bon courage ;)
0
merci tout dabord dixitron pour ton aide.
mais est ce que vous avez une idée claire et détaillé sur les scripts utilisé pour résoudre ce type de probleme ,si non est ce que vos pouver me d'ecrire les etapes pour resoudre cette probleme
meci davance
0
Contenu mail :
<img src="http://site-test.com/image.php?id=394" />

Script image.php
<?php
if(!empty($_GET['id']) && (int)$_GET['id']>0){
// Traitement de l'info avec l'id
}
echo get_file_contents('image.jpg');
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci nonymos
bon je suis un débutant en php, c pour cela il faut que tu mexcuse si je pause des questions bétes.
je travaille en serveur local easyphp.donc je dois mettre au lieu de "http://site-test.com/image.php" ,je mettre http:/local host/dossier application/iamge.php, c sa ou non?
ensuite est ce quil est necessaire denvoyer une variable dans< img qui contient ladresse de destinataire?
aussi je veut chaque fois ou le destinataire ouvre lemail, jincremente automatiquement le nombere douverture.comment?
et enfin ,limage image.jpg , ou se trouve ?dans localhost? et comment il va le connaitre?
aussi je ne trouve pas la fonction "get_file_contents",je pense que cest "file_get_contents" ?
merci pour votre aide davance
0
Salut,
1 - Fais des phrases en Français lorsque tu pose une question. Sinon c'est un effort intellectuelle supplémentaire pour la personne qui va essayer de t'aider. Sinon il se peut qu'il se trompe en interprétant ce que tu essai de dire.
2 - Ne commence pas en t'excusant, on a tous commencer par la.
3 - Ne demande pas si quelque chose qu'on te conseil est nécessaire. Si on te le conseil, c'est que c'est nécessaire.
4 - Pense à tous ca et tu obtiendra toute l'aide du monde.

Sinon j'ai cru comprendre que tu ne travaille qu'en local sur une machine de développement. Il faut que tu utilise un serveur sur Internet pour pouvoir detecter la lecture de mail.
0
merci pour tes conseil
voila ce que je fait,mais ca ne marche pas ,
page1.php // sa marche bien
//trairement
$query="INSERT INTO email(id_user,compteur) VALUES ('','0')";
mysql_query($query)//jai inséré dans la base lemail envoyé
$idmail=mysql_insert_id();//générer l'id de cette insertion.
$headers = "MIME-Version: 1.0\r\n";
$headers .= "content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: "exemple@yahoo.fr"\n\r" ;
$message= "<html align=\"center\"><img src=\"http://localhost/image.php? &id=".$idmail."\" width=\"1\" height=\"1\"/><h5>"ici le message"</h5></html>";//jai envoyé le message avec format html avec limage et avec lidentifiant
mail($des, $sujet, $message, $headers) or die("erreur d'envoi d'email");
//puis jenvooi le messge et ca marche bien via smtp de FAI en local


image.php//
if(!empty($_GET['id']) && (int)$_GET['id']>0){
// Traitement de l'info avec l'id
$id=$_GET['id'];
//connection a la base
$reponse1 = mysql_query("SELECT * FROM email where id_user='$id' ")
//je selectionne lemail de la base suivant lid retourné par lemail
$donnees = mysql_fetch_array($reponse1);
$comp=$donnees['compteur'];//le compteur est par defaut zero.mon but c que chaq fois lemail souvre jincremete 1 dans le champ compteur
$comp=$comp+1;
$sql= "UPDATE user SET compteur='$comp' WHERE id_user='$id'";
//modifier la nouvelle valeur du compteur
}
//redirection vers image.jpg
header ('http://img233.imageshack.us/img233/4408/imagemw3.jpg')
mais incrementationca ne marche pas
jesper que vous maider .
0
Salut,
Quel est la structure de ta base de donnée ?
0
salut
dans ma base ilya une seule table "email "chaque fois quon jenvoie un nouveau mail,il va etre enregistré dans cette table qui contient deux champs ,le premier champ c id_user qui est auto increment ,
puis je recupere ce id_user avec la fonction"$idmail=mysql_insert_id()" ,puis jenvoie ce $idmail avec lémail envoyé .
cette table contient un autre champ compteur qui est zero par défaut ,dans ce champs je veut incrémenté le nombre douverture de lemail par le destinataire .
donc dans la pge image.php, et quand lemail est ouvert par le destinataire ,on teste suivant cette $idmail ,je selectionne le tuple de mail de la table email suivant l'id retourné par lemail,
puis jincremente le compteur chaque fois lemail est ouvert avec UPDATE email SET compteur='$comp' WHERE id_user='$id'.
désolé dans la reponse precedente jei une erreur .c UPDATE email ,au lieu de UPDATE user.
merci
0
salut
dans ma base ilya une seule table "email "chaque fois quon jenvoie un nouveau mail,il va etre enregistré dans cette table qui contient deux champs ,le premier champ c id_user qui est auto increment ,
puis je recupere ce id_user avec la fonction"$idmail=mysql_insert_id()" ,puis jenvoie ce $idmail avec lémail envoyé .
cette table contient un autre champ compteur qui est zero par défaut ,dans ce champs je veut incrémenté le nombre douverture de lemail par le destinataire .
donc dans la pge image.php, et quand lemail est ouvert par le destinataire ,on teste suivant cette $idmail ,je selectionne le tuple de mail de la table email suivant l'id retourné par lemail,
puis jincremente le compteur chaque fois lemail est ouvert avec UPDATE email SET compteur='$comp' WHERE id_user='$id'.
désolé dans la reponse precedente jei une erreur .c UPDATE email ,au lieu de UPDATE user
0