PHP : recevoir mails
Résolu/Fermé
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
-
25 mars 2020 à 17:20
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 26 mars 2020 à 20:13
Anonyme209 Messages postés 678 Date d'inscription samedi 6 octobre 2012 Statut Membre Dernière intervention 22 décembre 2020 - 26 mars 2020 à 20:13
A voir également:
- PHP : recevoir mails
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Bouton php - Forum PHP
- \R php ✓ - Forum PHP
- Php alert - Forum PHP
4 réponses
jordane45
Messages postés
38446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 février 2025
4 739
25 mars 2020 à 17:32
25 mars 2020 à 17:32
Bonjour,
Pour recevoir le mail... il faut qu'il soit envoyé à une adresse mail valide (donc dans un serveur de mail).
En php, tu peux accéder au contenu des boites mails via les protocols imap ou smtp
https://www.php.net/manual/fr/function.imap-open.php
Par contre, la detection ne sera pas "automatique".
Il faut que tu créés un script et que tu l'exécutes à intervalle régulier via une tâches planifiée ( CRON ) ... enfin... si ton hébergement gratuit te le permet.
Pour recevoir le mail... il faut qu'il soit envoyé à une adresse mail valide (donc dans un serveur de mail).
En php, tu peux accéder au contenu des boites mails via les protocols imap ou smtp
https://www.php.net/manual/fr/function.imap-open.php
Par contre, la detection ne sera pas "automatique".
Il faut que tu créés un script et que tu l'exécutes à intervalle régulier via une tâches planifiée ( CRON ) ... enfin... si ton hébergement gratuit te le permet.
yg_be
Messages postés
23482
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 mars 2025
Ambassadeur
1 568
25 mars 2020 à 17:40
25 mars 2020 à 17:40
bonjour, je ne vois pas trop comment tu pourrais réaliser ce que tu décris.
tu ne décris pas ce que tu veux réaliser fonctionnellement, tu décris une solution que tu as imaginée.
si tu veux absolument travailler par email, il est sans doute possible de faire ainsi:
- le mail est envoyé à une boite aux lettres accessible via le protocole imap
- le script PHP est exécuté régulièrement automatiquement
- le script PHP va se connecter et examiner le contenu de la boite aux lettres, et agir en conséquence. il peut même peut-être supprimer des messages
si cela t'intéresse, renseigne toi sur IMAP en PHP.
tu ne décris pas ce que tu veux réaliser fonctionnellement, tu décris une solution que tu as imaginée.
si tu veux absolument travailler par email, il est sans doute possible de faire ainsi:
- le mail est envoyé à une boite aux lettres accessible via le protocole imap
- le script PHP est exécuté régulièrement automatiquement
- le script PHP va se connecter et examiner le contenu de la boite aux lettres, et agir en conséquence. il peut même peut-être supprimer des messages
si cela t'intéresse, renseigne toi sur IMAP en PHP.
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
26 mars 2020 à 10:51
26 mars 2020 à 10:51
Bonjour,
Merci pour vos réponses.
Je vais me renseigner pour le protocole IMAP. Cela m'oblige à disposer d'une adresse mail externe au site web, mais je devrais pouvoir me débrouiller.
Mon hébergeur m'autorise les tâches CRON (dans une certaine mesure, qui me sera sûrement suffisante pour ce que je veux faire). Au pire, la boîte mail sera interrogée lorsque l'utilisateur exécutera manuellement le script PHP.
Merci pour vos réponses.
Je vais me renseigner pour le protocole IMAP. Cela m'oblige à disposer d'une adresse mail externe au site web, mais je devrais pouvoir me débrouiller.
Mon hébergeur m'autorise les tâches CRON (dans une certaine mesure, qui me sera sûrement suffisante pour ce que je veux faire). Au pire, la boîte mail sera interrogée lorsque l'utilisateur exécutera manuellement le script PHP.
Anonyme209
Messages postés
678
Date d'inscription
samedi 6 octobre 2012
Statut
Membre
Dernière intervention
22 décembre 2020
15
Modifié le 26 mars 2020 à 20:17
Modifié le 26 mars 2020 à 20:17
Je confirme que j'ai réussi à mettre en place le système que vous m'avez décrit (après avoir réussi à trouver un hébergeur gratuit sur lequel je pouvais activer imap).
Je vais mettre le sujet en résolu.
Voici une partie de mon code, si ça peut aider des personnes qui voudraient mettre en place le même système. Ce n'est pas un code prêt à être copié collé, mais ça peut accélérer/aiguiller les recherches :
Je n'ai pas noté tous les sites que j'ai visités, mais je peux vous en donner quelques un qui m'ont été très utiles, en plus de la documentation PHP que vous m'avez envoyée.
https://electrictoolbox.com/php-imap-message-parts/
https://electrictoolbox.com/extract-attachments-email-php-imap/
http://www.levijackson.net/parsing-an-email-message-with-phps-imap-functions/
https://stackoverflow.com/questions/8036968/fetch-attactments-imap-fetchbody
Je vais mettre le sujet en résolu.
Voici une partie de mon code, si ça peut aider des personnes qui voudraient mettre en place le même système. Ce n'est pas un code prêt à être copié collé, mais ça peut accélérer/aiguiller les recherches :
$imap = imap_open("hôte:993/imap/ssl}", "adresse@domaine", "motdepasse"); $emails = imap_search($imap, 'UNDELETED'); // UNSEEN pour les messages non lus if($emails){ rsort($emails); foreach($emails as $numero) { $overview = imap_fetch_overview($imap,$numero,0); //récupérer $overview[0]->subject, $overview[0]->from , $overview[0]->udate), ... $structure = imap_fetchstructure($imap, $numero); // déterminer la section contenant le corps du message en itérant dans $structure ->parts (rechercher $part->subtype == "HTML" ou $part->subtype == "PLAIN" selon les besoins) //déterminer aussi l'encodage du message avec $part->encoding $body = imap_fetchbody($imap,$numero,$section); //généralement, $section = "1.1" "1.2" ou "2" selon les messages //utiliser la méthode de décodage appropriée en fonction de l'encodage déterminé (imap_utf7_decode, quoted_printable_decode, ...) //on pourra également chercher les pièces jointes (repérables avec $part->disposition = "attachment" (la casse peut varier)). //penser de même à déterminer l'encodage et à décoder les pièces jointes (les méthodes sont un peu différentes : imap_8bit, imap_binary, imap_qprint, imap_base64, ...) } } imap_close($imap);
Je n'ai pas noté tous les sites que j'ai visités, mais je peux vous en donner quelques un qui m'ont été très utiles, en plus de la documentation PHP que vous m'avez envoyée.
https://electrictoolbox.com/php-imap-message-parts/
https://electrictoolbox.com/extract-attachments-email-php-imap/
http://www.levijackson.net/parsing-an-email-message-with-phps-imap-functions/
https://stackoverflow.com/questions/8036968/fetch-attactments-imap-fetchbody