Comment marquer un e-mail comme lu en PHP (SMTP)
juliendefully
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je désirerais faire un script php qui lit les e-mail d'une boite e-mail précise, les affiche à l'écran et ensuite qu'ils soient marqués comme lu (dès qu'ils ont été affichés). J'ai essayé avec imap_setflag_full mais je n'arrive pas a faire marquer le mail comme lu. Je vous mets mon code ci-dessous, si quelqu'un voit une erreur ou pourquoi l'e-mail n'est pas marqué comme lu.
Merci beaucoup de votre aide
Je désirerais faire un script php qui lit les e-mail d'une boite e-mail précise, les affiche à l'écran et ensuite qu'ils soient marqués comme lu (dès qu'ils ont été affichés). J'ai essayé avec imap_setflag_full mais je n'arrive pas a faire marquer le mail comme lu. Je vous mets mon code ci-dessous, si quelqu'un voit une erreur ou pourquoi l'e-mail n'est pas marqué comme lu.
<?php $boiteMail = 'mail.xxxxxxx.com'; $port = 110; $login = `xxx@xxx.ch'; $motDePasse = `xxx'; $mbox = imap_open('{'.$boiteMail.':'.$port.'/pop3}', $login, $motDePasse); $mails = FALSE; if (FALSE === $mbox) { $err = 'La connexion a échoué. Vérifiez vos paramètres!'; } else { $info = imap_check($mbox); if (FALSE !== $info) { $nbMessages = min(50, $info->Nmsgs); $mails = imap_fetch_overview($mbox, '1:'.$nbMessages, 0); } else { $err = 'Impossible de lire le contenu de la boite mail'; } imap_close($mbox); } if (FALSE === $mails) { echo $err; } else { echo 'La boite aux lettres contient '.$info->Nmsgs.' message(s) dont '. $info->Recent.' recent(s)'. "<br />\n". "<br />\n »; /*On affiche tout les e-mails dans une boucle*/ foreach ($mails as $mail) { /*seulement si ils n'a pas été lu, et si il est récent*/ if ($mail->seen == 0 && $mail->recent == 1 && $mail->draft == 0 && $mail->deleted == 0) { # code... /*vu qu'on va afficher le contenu du mail ci-dessous, on le marque comme lu et on ajoute un flag $status = imap_setflag_full($mbox, $mail->uid, "\\Seen \\Flagged"); echo gettype($status) . "\n"; echo $status . "\n"; /*on affiche les informations de l'e-mail*/ echo $mail->from; echo $mail->uid; echo $mail->subject; echo $mail->date; echo "XXrX"; echo $mail->answered; echo $mail->seen; } } } ?>
Merci beaucoup de votre aide
A voir également:
- Imap_setflag_full
- É majuscule - Guide
- Comment télécharger un mail - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Comment transférer un mail sur un autre mail - Guide
2 réponses
Voici le retour actuel du script, les e-mails sont affichés mais pas marqués comme lu.
La boite aux lettres contient 2 message(s) dont 2 recent(s) Warning: imap_setflag_full(): 2 is not a valid imap resource in /home/cl/XXX/mail.php on line 34 boolean Auteur 1MessageWed, 28 Oct 2015 23:31:59 +0100XXrX00 Warning: imap_setflag_full(): 2 is not a valid imap resource in /home/cls/XXX/mail.php on line 34 boolean Auteur 2MessageWed, 28 Oct 2015 23:48:36 +0100XXrX00