Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2011, 09h16   #1
Membre habitué
 
Homme Serge
Inscription : octobre 2004
Messages : 335
Détails du profil
Informations personnelles :
Nom : Homme Serge
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2004
Messages : 335
Points : 124
Points : 124
Par défaut Détection de message non remis

Bonjour,

J'envoie des messages avec la fonction mail().
Je sais que certaines adresses sont invalides, non pas d'un point de vue syntaxe, mais, par exemple, parce que l'adresse n'existe plus. Et c'est justement ce que je veux savoir.
Normalement, il doit y avoir un message en retour du genre "Message non remis".
Je ne trouve pas les messages de retour. Où sont-ils ? dans un fichier log ?
senacle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 20h27   #2
Membre confirmé
 
Avatar de Mandraxx
 
Homme
Architecte de système d'information
Inscription : mai 2011
Messages : 133
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Gers (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 133
Points : 264
Points : 264
Bonjour,

La messagerie électronique est par essence un protocole asynchrone : la fonction mail dépose le message via SMTP dans sur ce que l'on appèle un MTA (Mail Transport Agent) qui va relayer l'information par ce même protocole jusqu'au serveur hébergeant l'adresse (le MX ou Mail eXchanger du domaine situé après le @).

Or, seul le MX sait si l'adresse existe ou pas ! Les autres MTA sont incapables de le déterminer.

Du coup, pas de message d'erreur côté appelant de mail : le dernier MTA rencontre un refus par le MX destinataire, il génère donc un message qui va être relayé via SMTP jusqu'à l'adresse de l'émetteur...

Il faut donc que l'adresse de l'émetteur contienne une valeur valide et c'est dans la messagerie de cet émetteur que vont arriver tous les avis de non distributions.

@+
__________________
Le choix motivé par le seul argument de modernité est intrinsèquement dépourvu de créativité.
Mandraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 14h23   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Citation:
Normalement, il doit y avoir un message en retour du genre "Message non remis".
Non il n'y en a pas, la seule chose que fait la fonction mail() de PHP, c'est pousser le message vers un serveur de mail. Ce qui lui arrive par la suite échappe au contrôle de PHP.

Le moyen le plus simple pour s'assurer qu'un mail à été effectivement délivré et lu c'est d'y incorporer une image ayant une addresse de ce style:
Code :
<img src="http://mon.site.com/img/generate.php?id_mail=123" />
A l'ouverture du mail, si le client de ton destinataire permet l'affichage des images, cette image va se charger en appellant un script PHP (qui renverra tout bêtement un flux d'image) qui au passage enregistrera le mail portant cet ID comme ayant été effectivement lu.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 16h22   #4
Membre confirmé
 
Avatar de juliens9
 
Directeur technique
Inscription : mars 2007
Messages : 192
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : mars 2007
Messages : 192
Points : 220
Points : 220
Bonjour,

Le taux d'ouverture/réception est un des grands classiques du php. Il n'y a pas de méthode php qui permette un callback a l'ouverture du message.

Comme solution tu peux passer par un système d'image chargée en php, comme décrit ci-dessus, tu peux également contrôler les "bounces" au niveau de ton serveur mail.

Si tu ne t'y connait pas trop, il existe le service mailjet qui est gratuit pour un nombre d'envoi faible. Il te dira alors tous ces éléments, avec de belles statistiques, par campagne etc...
juliens9 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 11h36   #5
Membre habitué
 
Homme Serge
Inscription : octobre 2004
Messages : 335
Détails du profil
Informations personnelles :
Nom : Homme Serge
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2004
Messages : 335
Points : 124
Points : 124
Merci pour vos explications et conseils.

Citation:
Envoyé par Mandraxx Voir le message
Bonjour,
Du coup, pas de message d'erreur côté appelant de mail : le dernier MTA rencontre un refus par le MX destinataire, il génère donc un message qui va être relayé via SMTP jusqu'à l'adresse de l'émetteur...
Malheureusement, les collègues qui gèrent l'hébergement de mon site me disent qu'il n'y a pas de gestion des messages qui reviennent vers l'émetteur...

Je vais donc essayer avec l'image.
senacle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 12h08   #6
Membre habitué
 
Homme Serge
Inscription : octobre 2004
Messages : 335
Détails du profil
Informations personnelles :
Nom : Homme Serge
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : octobre 2004
Messages : 335
Points : 124
Points : 124
Super !
Ca marche bien avec le principe de l'image (sûrement utilisé par les spammeurs pour vérifier la validité des adresses..., mais comme je l'utilise dans le cadre professionnel en interne, c'est bon).
senacle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h25.


 
 
 
 
Partenaires

Hébergement Web