imap_open

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_openAbre un flujo IMAP hacia un buzón de correo

Descripción

imap_open(
    string $mailbox,
    string $user,
    string $password,
    int $flags = 0,
    int $retries = 0,
    array $options = []
): IMAP\Connection|false

Abre un flujo IMAP hacia el buzón de correo mailbox.

Esta función también puede ser utilizada para abrir flujos en servidores POP3 y NNTP, pero algunas funciones y características solo están disponibles con servidores IMAP.

Parámetros

mailbox

Un nombre de buzón de correo está compuesto por una dirección de servidor y una dirección de buzón en ese servidor. La palabra reservada INBOX representa el buzón de correo del usuario actual. Los nombres de buzones de correo que contienen caracteres especiales (fuera del espacio ASCII) deben ser codificados con imap_utf7_encode().

Advertencia

El paso de datos no confiables a este parámetro es inseguro, a menos que imap.enable_insecure_rsh esté inhabilitado.

La dirección del servidor, entre llaves '{' y '}', está compuesta por el nombre del servidor o su dirección IP, una especificación de protocolo (comenzando por '/') y un puerto opcional (especificado con ':').

Esta parte es obligatoria en los parámetros del buzón de correo.

Todos los nombres que comienzan con { son nombres remotos y tienen la forma "{" nombre_sistema_remoto [":" puerto] [flags] "}" [nombre_buzon] donde :

  • remote_system_name : Nombre de dominio de Internet o una dirección IP de servidor entre comillas.
  • puerto : número de puerto TCP (opcional), el valor por defecto es el valor del puerto para este servicio.
  • flags : opciones, ver la tabla siguiente.
  • mailbox_name : nombre del buzón remoto, por defecto : INBOX

Flags opcionales para los nombres
Flag Descripción
/service=service servicio para el acceso al buzón, por defecto : "imap"
/user=user nombre del usuario remoto para la identificación en el servidor
/authuser=user usuario remoto de identificación; si se especifica, este será el nombre del usuario cuya contraseña se utiliza (e.g. administrador)
/anonymous acceso remoto anónimo
/debug la telemetría de registro del protocolo en los logs de depuración de la aplicación
/secure no transmite una contraseña en claro a través de la red
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 equivalente a /service=imap
/pop3 equivalente a /service=pop3
/nntp equivalente a /service=nntp
/norsh no utilizar rsh o ssh para establecer una sesión de pre identificación IMAP
/ssl utiliza Secure Socket Layer para cifrar la sesión
/validate-cert valida los certificados desde el servidor TLS/SSL (es el comportamiento por defecto)
/novalidate-cert no valida los certificados desde el servidor TLS/SSL, necesario si el servidor utiliza certificados autofirmados
/tls fuerza el uso de start-TLS para cifrar la sesión y rechaza las conexiones a los servidores que no lo soportan
/notls no utiliza start-TLS para cifrar la sesión, incluso con los servidores que lo soportan
/readonly solicita acceso de solo lectura en el buzón (solo IMAP; ignorado en NNTP, y un error con SMTP y POP3)

user

El nombre de usuario

password

La contraseña asociada con el usuario user

flags

flags es una máscara de bits, que puede tomar uno o varios de los siguientes valores :

  • OP_READONLY : Abre un buzón de correo en modo de solo lectura
  • OP_ANONYMOUS : No utilizar, o modificar el fichero .newsrc para las noticias (solo NNTP)
  • OP_HALFOPEN : Para los nombres IMAP y NNTP, abre una conexión pero no abre un buzón de correo.
  • CL_EXPUNGE : Elimina automáticamente el buzón de correo de la lista, al finalizar el flujo (ver también imap_delete() y imap_expunge())
  • OP_DEBUG : negociaciones de depuración del protocolo
  • OP_SHORTCACHE : Caché corta (elt solamente)
  • OP_SILENT : No transmitir los eventos (uso interno)
  • OP_PROTOTYPE : Devuelve el prototipo del controlador
  • OP_SECURE : No realizar identificaciones no seguras

retries

El número máximo de intentos de conexión.

options

Parámetros de conexión; las claves pueden ser utilizadas para definir uno o varios parámetros de conexión :

  • DISABLE_AUTHENTICATOR - Desactiva las propiedades de autenticación

Valores devueltos

Devuelve una instancia de IMAP\Connection en caso de éxito, o false en caso de error.

Historial de cambios

Versión Descripción
8.1.0 Ahora devuelve una instancia de IMAP\Connection ; anteriormente, un recurso era devuelto.

Ejemplos

Ejemplo #1 Diferentes usos de imap_open()

<?php
// Para conectarse a un servidor IMAP funcionando en el puerto 143 de la
// máquina local, haga esto :
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// Para conectarse a un servidor POP3 funcionando en el puerto 110 del
// servidor local, haga esto :
$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 del protocolo :
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// Para conectarse a un servidor NNTP que funciona en
// el puerto 119 de la máquina local se puede utilizar el comando:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");

// Para conectarse a un servidor remoto, reemplace "localhost" por
// el nombre o la dirección IP de la máquina.
?>

Ejemplo #2 Ejemplo con imap_open()

<?php
$mbox
= imap_open("{imap.example.org:143}", "username", "password");

echo
"<h1>Buzones de correo</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if (
$folders == false) {
echo
"Llamada fallida<br />\n";
} else {
foreach (
$folders as $val) {
echo
$val . "<br />\n";
</foreach>
}

echo
"<h1>Encabezados en INBOX</h1>\n";
$headers = imap_headers($mbox);

if (
$headers == false) {
echo
"Llamada fallida<br />\n";
} else {
foreach (
$headers as $val) {
echo
$val . "<br />\n";
}
}

imap_close($mbox);
?>

Ver también