imap_open

(PHP 4, PHP 5, PHP 7)

imap_openAbrir un flujo IMAP a un buzón

Descripción

imap_open ( string $mailbox , string $username , string $password [, int $options = 0 [, int $n_retries = 0 [, array $params = NULL ]]] ) : resource

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.

Parámetros

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:

  • nombre_sistema_remoto - -Nombre de dominio de internet o dirección IP del servidor entre corchetes.
  • port - número de puerto TCP opcional, por omisión es el puerto por defecto para ese servicio
  • flags - banderas opcionales, véase la siguiente tabla.
  • mailbox_name - nombre del buzón remoto, por defecto es INBOX

Banderas opcionales para los nombres
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:

  • DISABLE_AUTHENTICATOR - Deshabilitar las propieades de autenticación

Valores devueltos

Devuelve un flujo IMAP en caso de éxito o FALSE en caso de error.

Historial de cambios

Versión Descripción
5.3.2 Se añadió params
5.2.0 Se añadió n_retries

Ejemplos

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

Ver también