imap_num_recent
<<<
imap_open imap_ping
>>>

6.15 IMAP
6 Référence des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes pré-définies
Voir aussi
imap_8bit
imap_alerts
imap_append
imap_base64
imap_binary
imap_body
imap_bodystruct
imap_check
imap_clearflag_full
imap_close
imap_createmailbox
imap_delete
imap_deletemailbox
imap_errors
imap_expunge
imap_fetch_overview
imap_fetchbody
imap_fetchheader
imap_fetchstructure
imap_get_quota
imap_get_quotaroot
imap_getacl
imap_getmailboxes
imap_getsubscribed
imap_header
imap_headerinfo
imap_headers
imap_last_error
imap_list
imap_listmailbox
imap_listscan
imap_listsubscribed
imap_lsub
imap_mail_compose
imap_mail_copy
imap_mail_move
imap_mail
imap_mailboxmsginfo
imap_mime_header_decode
imap_msgno
imap_num_msg
imap_num_recent
->imap_open
imap_ping
imap_qprint
imap_renamemailbox
imap_reopen
imap_rfc822_parse_adrlist
imap_rfc822_parse_headers
imap_rfc822_write_address
imap_scanmailbox
imap_search
imap_set_quota
imap_setacl
imap_setflag_full
imap_sort
imap_status
imap_subscribe
imap_thread
imap_timeout
imap_uid
imap_undelete
imap_unsubscribe
imap_utf7_decode
imap_utf7_encode
imap_utf8

6.15.50 imap_open() Ouvre un flux IMAP vers une boîte aux lettres

[ Exemples avec imap_open ]   PHP 3, PHP 4, PHP 5

resource  imap_open ( string   mailbox , string   username , string   password , int   options )

imap_open retourne un flux IMAP en cas de succès, et FALSE en cas d'erreur. imap_open peut aussi être utilisée pour ouvrir des flots sur des serveurs POP3 et NNTP .

Un nom de boîte aux lettres est constitué d'une adresse de serveur, et d'une adresse de boîte sur ce serveur. Le mot réservé INBOX représente la boîte aux lettres de l'utilisateur courant. L'adresse du serveur, mise entre accolades '{' et '}', est constituée du nom du serveur ou de son adresse IP, d'une spécification de protocole (commençant par '/') et d'un port optionnel (spécifié avec ':'). Cette partie est obligatoire dans les paramètres de la boîte aux lettres. Les noms de boîtes aux lettres qui contiennent des caractères spéciaux (en dehors de l'espace ASCII) doivent être encodés avec imap_utf7_encode .

Tous les noms commençant par { sont des noms distants et sont sous la forme "{" nom_systeme_distant [":" port] [flags] "}" [nom_mailbox] où :

  • nom_systeme_distant - Nom de domaine Internet ou une adresse IP de serveur entouré de guillemets.
  • port - numéro de port TCP (optionnel), la valeur par défaut est la valeur du port pour ce service.
  • flags - flags optionnels, voir la table suivante.
  • nom_mailbox - nom de la mailbox distante, par défaut : INBOX

Flag Description
/service= service service pourl'accès à la mailbox, par défaut : "imap"
/user= user nom de l'utilisateur distant pour l'identification sur le serveur
/authuser= user utilisateur distance d'identification ; si spécifié, ce sera le nom de l'utilisateur dont le mot de passe est utilisé (e.g. administratur)
/anonymous accès distant en anonyme
/debug la télémétrie d'enregistrement du protocole dans les logs de débogage de l'application
/secure ne transmet pas un mot de passe en clair à travers le réseau
/imap , /imap2 , /imap2bis , /imap4 , /imap4rev1 équivalent de /service=imap
/pop3 équivalent de /service=pop3
/nntp équivalent de /service=nntp
/norsh ne pas utiliser rsh ou ssh pour établir une session de pré identification IMAP
/ssl utilise Secure Socket Layer pour crypter la session
/validate-cert valide les certificats depuis le serveur TLS/SSL (c'est le comportement par défaut)
/novalidate-cert ne pas valider les certificats depuis le serveur TLS/SSL, nécessaire si le serveur utilise des certificats auto-signés
/tls force l'utilisation de start-TLS pour crypter la session et rejète les connexions aux serveurs qui ne le supporte pas
/notls n'utilise pas start-TLS pour crypter la session, y compris avec les serveurs qui le supporte
/readonly demande un accès en lecture seule sur mailbox (IMAP uniquement ; ignoré sous NNTP, et une erreur avec SMTP et POP3)

options est un masque de bit, qui peut prendre une ou plusieurs des valeurs suivantes :

  • OP_READONLY - Ouvre une boîte aux lettres en lecture seule
  • OP_ANONYMOUS - Ne pas utiliser, ou modifier le fichier .newsrc pour les news.
  • OP_HALFOPEN - Pour les noms IMAP et NNTP , ouvre une connexion mais n'ouvre pas une boîte aux lettres.
  • CL_EXPUNGE - Supprime automatiquement la boîte aux lettres de la liste, lors de la terminaison du flux (voir aussi imap_delete and imap_expunge )
  • OP_DEBUG - négociations de débogage du protocole
  • OP_SHORTCACHE - Cache court (elt uniquement)
  • OP_SILENT - Ne pas transmettre les événements (utilisation interne)
  • OP_PROTOTYPE - Retourne le prototype du driver
  • OP_EXPUNGE - Nettoye silencieusement le flux recyclé
  • OP_SECURE - Ne pas effectuer des identifications non sécuritées

Pour se connecter à un serveur IMAP , on peut utiliser la commande suivante :
Différentes utilisations de imap_open

<?php
// Pour se connecter à un serveur IMAP fonctionnant sur le port 143 de la
// machine locale, faîtes ceci :
$mbox  = imap_open("{localhost:143}INBOX","user_id","password");

// Pour se connecter à un serveur POP3 fonctionnant sur le port 110 du
// serveur local, faîtes ceci :
$mbox = imap_open("{localhost:110/pop3}INBOX","user_id","password");

// Pour se connecter à un serveur SSL IMAP ou POP3, ajoutez /ssl
// après la spécification du protocole
$mbox = imap_open("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// Pour se connecter à un serveur SSL IMAP ou POP3 avec un certificat auto-signé
// ajoutez /ssl/novalidate-cert après le protocole :
$mbox = imap_open("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// Pour se connecter à un serveur NNTP qui fonctionne sur
// le port 119 de la machine locale on peut utiliser la commande:
$nntp = imap_open("{localhost:119/nntp}comp.test","","");

// Pour se connecter à un serveur distant, remplacez "localhost" par
// le nom ou l'adresse IP de la machine.
?>

Exemple avec imap_open

<?php

$mbox
= imap_open("{votre.hote.imap:143}", "nom_utilisateur", "mot de passe");
echo
"<h1>Mailboxes</h1>\n";

$folders = imap_listmailbox($mbox, "{votre.hote.imap:143}", "*");
if (
$folders == false) {
   echo
"Appel échoué<br />\n";
} else {
   foreach (
$folders as $val) {
       echo
$val . "<br />\n";
   }
}

echo
"<h1>en-têtes dans INBOX</h1>\n";
$headers = imap_headers($mbox);
if (
$headers == false) {
   echo
"Appel échoué<br />\n";
} else {
   foreach (
$headers as $val) {
       echo
$val . "<br />\n";
   }
}

imap_close($mbox);
?>

<< imap_open >>
imap_num_recent IMAP imap_ping