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); ?>
|
|