XLIV. IMAP

Introduction

Ces fonctions ne sont pas limitées au protocole IMAP, malgrès leur nom. La bibliothèque cliente C supporte aussi les méthodes d'accès à NNTP, POP3 et aux boîtes aux lettres locales.

Pré-requis

Cette extension requiert la bibliothèque C cliente. Téléchargez cette dernière version à ftp://ftp.cac.washington.edu/imap/ et compilez-la.

Puis, copiez le fichier c-client/c-client.a dans /usr/local/lib ou n'importe quel autre dossier qui soit dans le chemin de link. Enfin, copiez les fichiers c-client/rfc822.h, mail.h et linkage.h dans /usr/local/include ou n'importe quel autre dossier qui soit dans le chemin d'inclusion.

Note : Assurez-vous que c-client.a est bien dans votre chemin de link, sous le nom libc-client.a.

Copiez les fichiers suivants dans le dossier /usr/local/include ou dans n'importe quel dossier qui soit dans votre chemin d'inclusion.

c-client.h
imap4r1.h
rfc822.h
mail.h
linkage.h
env.h
env_unix.h
fs.h
ftl.h
misc.h
nntp.h
nl.h
osdep.h
smtp.h
tcp.h

Note : Le nom de env_unix.h dépend de votre OS. Assurez-vous que ces fichiers sont bien copiés avec l'option de suivi des liens. Pour compiler la bibliothèque C cliente avec SSL et/ou avec le support Kerberos, lisez la doc fournie dans la distribution.

Installation

Pour avoir accès à ces fonctions, vous devez compiler PHP avec l'option --with-imap[=DIR], où DIR est le préfixe de l'installation du client C. Dans nos exemples, vous pourriez utiliser --with-imap=/usr/local/imap-2000b. Le nom du dossier d'installation dépend de l'emplacement où vous avez créé le dossier, en fonction de la description ci-dessus. Les utilisateurs Windows peuvent inclure la bibliothèque DLL php_imap.dll dans le php.ini

Note : Suivant la configuration de la bibliothèque C cliente, vous pouvez aussi avoir besoin d'ajouter --with-imap-ssl=/path/to/openssl/ et/ou --with-kerberos=/path/to/kerberos dans la ligne de configuration PHP.

Avertissement

L'extension IMAP ne peut être utilisée simultanément avec l'extension recode, l'extension YAZ ou l'extension Cyrus. Ceci est dû au fait que ces bibliothèques utilisent un symbole interne commun.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Constantes prédefinies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

NIL (entier)

OP_DEBUG (entier)

OP_READONLY (entier)

Ouvre une boîte aux lettres en lecture seule

OP_ANONYMOUS (entier)

Ne pas utiliser, ou modifier le fichier .newsrc pour les news, (NNTP uniquement).

OP_SHORTCACHE (entier)

OP_SILENT (entier)

OP_PROTOTYPE (entier)

OP_HALFOPEN (entier)

Pour les noms IMAP et NNTP, ouvre une connexion mais n'ouvre pas une boîte aux lettres.

OP_EXPUNGE (entier)

OP_SECURE (entier)

CL_EXPUNGE (entier)

purger automatiquement la boîte aux lettres lors de l'appel de imap_close()

FT_UID (entier)

Le paramètre est un UID.

FT_PEEK (entier)

Ne pas lever le drapeau \Seen (Message lu) s'il n'est pas déjà levé.

FT_NOT (entier)

FT_INTERNAL (entier)

La chaîne renvoyée est au format interne, et ne va pas canoniser les CRLF.

FT_PREFETCHTEXT (entier)

ST_UID (entier)

la séquence contient des UID au lieu de numéros de séquence

ST_SILENT (entier)

ST_SET (entier)

CP_UID (entier)

La séquence de nombres contient des UID

CP_MOVE (entier)

Efface les messages après copie avec imap_mail_copy()

SE_UID (entier)

Retourne des UID à la place de numéros

SE_FREE (entier)

SE_NOPREFETCH (entier)

Ne pas pré-télécharger les messages trouvés

SO_FREE (entier)

SO_NOSERVER (entier)

SA_MESSAGES (entier)

SA_RECENT (entier)

SA_UNSEEN (entier)

SA_UIDNEXT (entier)

SA_UIDVALIDITY (entier)

SA_ALL (entier)

LATT_NOINFERIORS (entier)

Cette boîte aux lettres n'a pas d'"enfants" (il n'y a plus de boîtes aux lettres en dessous de celle-ci).

LATT_NOSELECT (entier)

Ceci est juste un container, pas une boîte aux lettres (vous ne pouvez pas l'ouvrir).

LATT_MARKED (entier)

Cette boîte aux lettres est marquée. Utilisé uniquement avec UW-IMAPD.

LATT_UNMARKED (entier)

Cette boîte aux lettres n'est pas marquée. Utilisé uniquement avec UW-IMAPD.

SORTDATE (entier)

Critère de tri pour imap_sort() : Date du message

SORTARRIVAL (entier)

Critère de tri pour imap_sort() : Date d'arrivée

SORTFROM (entier)

Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de l'adresse d'origine (From address)

SORTSUBJECT (entier)

Critère de tri pour imap_sort() : Sujet du message

SORTTO (entier)

Critère de tri pour imap_sort() : Nom de la première boîte aux lettres de destination (To address)

SORTCC (entier)

Critère de tri pour imap_sort() : Nom de la boîte aux lettres de copie cachée (cc address)

SORTSIZE (entier)

Critère de tri pour imap_sort() : Taille du message en octets

TYPETEXT (entier)

TYPEMULTIPART (entier)

TYPEMESSAGE (entier)

TYPEAPPLICATION (entier)

TYPEAUDIO (entier)

TYPEIMAGE (entier)

TYPEVIDEO (entier)

TYPEOTHER (entier)

ENC7BIT (entier)

ENC8BIT (entier)

ENCBINARY (entier)

ENCBASE64 (entier)

ENCQUOTEDPRINTABLE (entier)

ENCOTHER (entier)

Voir aussi

Ce document ne peut entrer dans les détails de tous les sujets abordés. Plus d'informations sont disponibles avec la documentation de la bibliothèque C (docs/internal.txt) ainsi que les RFC suivantes :

  • RFC2821: Simple Mail Transfer Protocol (SMTP).

  • RFC2822: Standard for ARPA internet text messages.

  • RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.

  • RFC1939: Post Office Protocol Version 3 (POP3).

  • RFC977: Network News Transfer Protocol (NNTP).

  • RFC2076: Common Internet Message Headers.

  • RFC2045 , RFC2046 , RFC2047 , RFC2048 et RFC2049: Multipurpose Internet Mail Extensions (MIME).

Une étude approfondie est aussi disponible dans les livres suivants (en anglais): Programming Internet Email par David Wood et Managing IMAP par Dianna Mullet & Kevin Mullet.

Avertissement

Des crashs et des problèmes de démarrage de PHP sont possibles lorsque vous chargez cette extension en même temps que l'extension recode. Voyez l'extension recode pour plus d'informations.

Table des matières
imap_8bit --  Convertit une chaîne à 8 bits en une chaîne à guillemets.
imap_alerts --  Retourne toutes les alertes
imap_append --  Ajoute une chaîne dans une boîte aux lettres.
imap_base64 -- Décode un texte encodé en BASE64
imap_binary --  Convertit une chaîne à 8 bits en une chaîne à base64.
imap_body -- Lit le corps d'un message
imap_bodystruct --  Lit la structure d'une section du corps d'un mail
imap_check --  Vérifie le courrier de la boîte aux lettres courante.
imap_clearflag_full -- Supprime un flag (drapeau) sur un message
imap_close -- Termine un flux IMAP
imap_createmailbox -- Crée une nouvelle boîte aux lettres
imap_delete --  Marque le fichier pour l'effacement, dans la boîte aux lettres courante
imap_deletemailbox -- Efface une boîte aux lettres
imap_errors --  Retourne toutes les erreurs
imap_expunge -- Efface tous les messages marqués pour l'effacement.
imap_fetch_overview --  Lit un sommaire des en-têtes de messages
imap_fetchbody -- Retourne une section extraite du corps d'un message
imap_fetchheader -- Retourne l'en-tête d'un message
imap_fetchstructure --  Lit la structure d'un message.
imap_get_quota --  Lit les quotas des boîtes aux lettres
imap_get_quotaroot -- Lit les quotas de chaque utilisateur
imap_getacl --  Retourne le ACL pour la boîte aux lettres
imap_getmailboxes --  Liste les boîtes aux lettres, et retourne les détails de chacune.
imap_getsubscribed -- Liste toutes les boîtes aux lettres souscrites
imap_header -- Alias de imap_headerinfo()
imap_headerinfo -- Lit l'en-tête du message
imap_headers --  Retourne les en-têtes de tous les messages d'une boîte aux lettres.
imap_last_error --  Retourne la dernière erreur (si elle existe) qui est survenue lors de la dernière requête.
imap_list -- Lit la liste des boîtes aux lettres
imap_listmailbox -- Alias de imap_list()
imap_listscan --  Lit la liste des boîtes aux lettres, et y recherche une chaîne
imap_listsubscribed -- Alias de imap_lsub()
imap_lsub -- Liste toutes les boîtes aux lettres enregistrées
imap_mail_compose --  Crée un message MIME
imap_mail_copy --  Copie les messages spécifiés dans une boîte aux lettres.
imap_mail_move --  Déplace des messages dans une boîte aux lettres
imap_mail --  Envoie un message mail
imap_mailboxmsginfo --  Lit les informations à propos de la boîte aux lettres courante.
imap_mime_header_decode -- Décode les éléments MIME d'un en-tête
imap_msgno --  Retourne le numéro de séquence de message pour un UID donné.
imap_num_msg --  Retourne le nombre de message dans la boîte aux lettres courante.
imap_num_recent --  Retourne le nombre de messages récents dans la boîte aux lettres courante.
imap_open --  Ouvre un flux IMAP vers une boîte aux lettres
imap_ping -- Vérifie que le flux IMAP est toujours actif
imap_qprint --  Convertit une chaîne à guillemets en une chaîne à 8 bits.
imap_renamemailbox -- Renomme une boîte aux lettres
imap_reopen --  Réouvre un flux IMAP vers une nouvelle boîte aux lettres.
imap_rfc822_parse_adrlist -- Analyse une adresse email
imap_rfc822_parse_headers -- Analyse un en-tête mail
imap_rfc822_write_address -- Retourne une adresse email formatée correctement
imap_scanmailbox -- Alias de imap_listscan()
imap_search --  Retourne un tableau de message après recherche.
imap_set_quota -- Modifie le quota d'une boîte aux lettres
imap_setacl --  Modifie le ACL de la boîte aux lettres
imap_setflag_full -- Positionne un flag sur un message
imap_sort -- Trie des messages
imap_status --  Retourne les informations de statut sur une boîte aux lettres autres que la boîte courante.
imap_subscribe -- Souscrit à une boîte aux lettres
imap_thread --  Retourne l'arbre de REFERENCE organisé par thread
imap_timeout --  Configure ou retourne le timeout
imap_uid --  Retourne l'UID d'un message.
imap_undelete -- Enlève la marque d'effacement d'un message
imap_unsubscribe -- Termine la souscription à une boîte aux lettres
imap_utf7_decode --  Décode une chaîne encodée en UTF-7 modifié
imap_utf7_encode --  Convertit une chaîne ISO-8859-1 en texte UTF-7 modifié
imap_utf8 --  Convertit du texte au format MIME en UTF8