Manuel PHP
Précédent |  | Suivant

# imap_open

(PHP 3, PHP 4, PHP 5)

imap_open -- Ouvre un flux IMAP vers une boîte aux lettres

## Description

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

Ouvre un flux IMAP vers la boîte aux lettres `mailbox`.

Cette fonction peut aussi être utilisée pour ouvrir des flots sur des serveurs POP3 et NNTP mais quelques fonctions et fonctionnalités ne sont disponibles qu'avec les serveurs IMAP.

## Liste de paramètres

`mailbox`

  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. 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().

  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.

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

  - `remote_system_name` - 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.

  - `mailbox_name` - nom de la mailbox distante, par défaut : INBOX

  Tableau 1. Flags optionnels pour les noms

  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)

`username`

  Le nom d'utilisateur

`password`

  Le mot de passe associé avec l'utilisateur `username`

`options`

  `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 (NNTP uniquement)

  - `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

## Valeurs de retour

Retourne un flux IMAP en cas de succès, ou `FALSE` si une erreur survient.

## Exemples

Exemple 1. Différentes utilisations de imap_open()

`<?php
// Pour se connecter à un serveur IMAP fonctionnant sur le port 143 de la
// machine locale, faites ceci :
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");
// Pour se connecter à un serveur POP3 fonctionnant sur le port 110 du
// serveur local, faites 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 2. Exemple avec imap_open()

`<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");
echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org: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);
?>`

## Voir aussi

imap_close()

Précédent | Sommaire | Suivant
imap_num_recent | Niveau supérieur | imap_ping