(PHP 4, PHP 5, PHP 7)
imap_open — Abrir un flujo IMAP a un buzón
$mailbox
, string $username
, string $password
[, int $options
= 0
[, int $n_retries
= 0
[, array $params
= NULL
]]] )
Abre un flujo IMAP a un buzón dado por mailbox
.
Esta función también se puede usar para abrir flujos a servidores POP3 y NNTP, pero sólo algunas funciones y características están disponibles en servidores IMAP.
mailbox
Un nombre de buzón consiste en una ruta de servidor y una de buzón para este servidor. El nombre especial INBOX permanece para los buzones personales de ususarios actuales. Los nombres de buzón que contienen caracteres internacionales además de aquellos imprimibles del espacio ASCII tienen que ser codificados con imap_utf7_encode().
La ruta del servidor, que está encerrada entre '{' y '}', consiste en los nombres de los servidores o direcciones ip, y el puerto opcional (prefijado por ':'), y una especificación de protocolo opcional (prefijada por '/').
La parte del servidor el obligatoria en todos los parámetros del buzón.
Todos los nombres que empiezan con { son nombres remotos, y están en la forma "{" nombre_sistema_remoto [":" puerto] [banderas] "}" [nombre_buzón] donde:
Bandera | Descricpción |
---|---|
/service=servicio | servicio de acceso al buzón, por defecto es "imap" |
/user=usuario | nombre de usuario remoto para identificar en el servidor |
/authuser=usuario | usuario de autentificación remoto; si se especifica es el nombre de usuario cuya contraseña es usada (p.ej. administrador) |
/anonymous | acceso remoto como usuario anónimo |
/debug | grabar la telemetría de protocolo en el registro de depuración de la aplicación |
/secure | no transmitir una contraseña en texto plano en la red |
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | equivalente a /service=imap |
/pop3 | equivalente a /service=pop3 |
/nntp | equivalente a /service=nntp |
/norsh | no usar rsh o ssh para establecer una sesión de IMAP preautenticada |
/ssl | usar Secure Socket Layer (Capa de Conexión Segura) para encriptar la sesión |
/validate-cert | validar certificados desde el servidor TLS/SSL (este es el comportamiento predeterminado) |
/novalidate-cert | no validar certificador desde el servidor TLS/SSL, necesario si el servidor usa certificados autofirmados |
/tls | forzar el uso de start-TLS para encriptar la sesión, y rechazar la conexión a servidores que no la soportan |
/notls | no realizar start-TLS para encriptar la sesión, incluso con los servidores que la soportan |
/readonly | petición de apertura de un buzón de sólo lectura (sólo IMAP; ignorado en NNTP, y un error con SMTP y POP3) |
username
El nombre de usuario
password
La contraseña asociada con username
options
options
es una máscara de bits con uno o más de lo
siguiente:
OP_READONLY
- Abrir un buzón de sólo lectura
OP_ANONYMOUS
- No usar o actualizar un
.newsrc para noticias (sólo NNTP)
OP_HALFOPEN
- Para nombres IMAP
y NNTP, abrir una conexión pero
no abrir el buzón.
CL_EXPUNGE
- Expurgar el buzón automáticamente al cierre del mismo
(véase también imap_delete() y
imap_expunge())
OP_DEBUG
- Depurar negociaciones de protocolo
OP_SHORTCACHE
- Almacenamiento en caché corto (sólo elt)
OP_SILENT
- No dejar pasar eventos (uso interno)
OP_PROTOTYPE
- Devolver el prototipo de controlador
OP_SECURE
- No realizar autenticación no segura
n_retries
Número máximo de intentos de conexión
params
Parámetros de conexión, las siguientes claves (cadena) pueden usarse para establecer uno o más parámetros de conexión:
Devuelve un flujo IMAP en caso de éxito o FALSE
en caso de error.
Versión | Descripción |
---|---|
5.3.2 | Se añadió params |
5.2.0 | Se añadió n_retries |
Ejemplo #1 Diferentes usos de imap_open()
<?php
// Para conectarse a un servidor IMAP que se ejecuta en el puerto 142 de la máquina local,
// haga lo siguiente:
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");
// Para conectarse a un servidor POP3 en el puerto 110 del servidor local, use:
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");
// Para conectarse a un servidor SSL, IMAP o POP3, añada /ssl después de la especificación
// del protocolo:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");
// Para conectarse a un servidor SSL, IMAP o POP3, con un certificado autofirmado,
// añada /ssl/novalidate-cert después de la especificación del protocolo:
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");
// Para conectarse a un servidor NNTP en el puerto 119 en el servidor local, use:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
// Para conectarse a un servidor remoto reemplace "localhost" con el nombre o la
// dirección IP del servidor al que se quiere conectar.
?>
Ejemplo #2 Ejemplo de imap_open()
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");
echo "<h1>Buzones</h1>\n";
$carpetas = imap_listmailbox($mbox, "{imap.example.org:143}", "*");
if ($carpetas == false) {
echo "Llamada fallida<br />\n";
} else {
foreach ($carpetas as $val) {
echo $val . "<br />\n";
}
}
echo "<h1>Cabeceras en INBOX</h1>\n";
$cabeceras = imap_headers($mbox);
if ($cabeceras == false) {
echo "Llamada fallida<br />\n";
} else {
foreach ($cabeceras as $val) {
echo $val . "<br />\n";
}
}
imap_close($mbox);
?>