IMAP + HOTMAIL
Résolu
CyrionFR
Messages postés
20
Statut
Membre
-
CyrionFR Messages postés 20 Statut Membre -
CyrionFR Messages postés 20 Statut Membre -
Bonjour,
Apres de nombreuses recherches je ne trouve pas la solution à mon problème.
Je m'explique : avec le script ci-dessous j'arrive à me connecter à toutes mes boites mails (gmail etc.) et à lire le nombre de mails non lu, sauf hotmail ! La lect
Ce qu'affiche ma page apres execution :
C'est à dire.. rien. Pourquoi avec hotmail je n'y arrive pas ? Une piste serait que cela vient de la version d'apache mais j'y crois peu. Je pense que je procede mal au niveau de l'imap_open...
Merci pour toute réponse...
Apres de nombreuses recherches je ne trouve pas la solution à mon problème.
Je m'explique : avec le script ci-dessous j'arrive à me connecter à toutes mes boites mails (gmail etc.) et à lire le nombre de mails non lu, sauf hotmail ! La lect
<?php
getUnreadHotmail();
function getUnreadHotmail()
{
$mbox = imap_open("{imap-mail.outlook.com:993/imap/ssl/novalidate-cert}INBOX", "ADRESSE_MAIL", "MOT_DE_PASSE", OP_HALFOPEN)
or die("Connexion impossible : " . imap_last_error());
$status = imap_status($mbox, "{imap-mail.outlook.com:993/imap/ssl/novalidate-cert}INBOX", SA_ALL);
if ($status) {
echo "Non lu : " . $status->unseen . "<br />\n";
} else {
echo "imap_status a échoué : " . imap_last_error() . "\n";
}
imap_close($mbox);
}
?>
Ce qu'affiche ma page apres execution :
Non lu :
C'est à dire.. rien. Pourquoi avec hotmail je n'y arrive pas ? Une piste serait que cela vient de la version d'apache mais j'y crois peu. Je pense que je procede mal au niveau de l'imap_open...
Merci pour toute réponse...
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
2 réponses
Bonjour,
Hotmail ( live, Outlook..) sont visiblement en Exchange.
d'après un commentaire sur le manuel php... avec exchange.. imap_status ne fonctionne pas correctement...
Il propose une solution à tester : https://www.php.net/manual/fr/function.imap-status.php#109381
Remplacer ton appel à la fonction imap_status par celle ci-dessous
Hotmail ( live, Outlook..) sont visiblement en Exchange.
d'après un commentaire sur le manuel php... avec exchange.. imap_status ne fonctionne pas correctement...
Il propose une solution à tester : https://www.php.net/manual/fr/function.imap-status.php#109381
Remplacer ton appel à la fonction imap_status par celle ci-dessous
<?php
function my_imap_status($stream, $mailbox='', $info=SA_ALL)
{
// get current mailbox name (and info)
$curr_obj=imap_check($stream);
if(!$curr_obj) return false;
// if request if for current mailbox then just return it
if( (empty($mailbox)) || ($mailbox==$curr_obj->Mailbox) ) return $curr_obj;
// get current mailbox
$current_mailbox=$curr_obj->Mailbox;
//switch to new mailbox
if(!imap_reopen($stream, $mailbox)) return false;
// get info
$obj=imap_check($stream);
// switch back to original mailbox
imap_reopen($stream, $current_mailbox);
//return info
return $obj;
}
Bonjour,
Malheureusement imap_check() ne retourne pas le nombre de messages non lus (tag : SA_UNSEEN) cependant tu m'as permis de trouver la solution et je t'en remercie.
Le seule solution est en effet imap_status() cependant au lieu d'utiliser ce code :
j'utilise ce code, la solution miracle :
Voila merci !!!
Malheureusement imap_check() ne retourne pas le nombre de messages non lus (tag : SA_UNSEEN) cependant tu m'as permis de trouver la solution et je t'en remercie.
Le seule solution est en effet imap_status() cependant au lieu d'utiliser ce code :
$status = imap_status($mbox, "{imap-mail.outlook.com:993/imap/ssl/novalidate-cert}INBOX", SA_ALL);
j'utilise ce code, la solution miracle :
$status = imap_status($mbox, "{imap-mail.outlook.com:993/imap/ssl/novalidate-cert}INBOX", SA_UNSEEN);
Voila merci !!!