4D Internet Commands v16

IMAP_Search

Inicio

 
4D Internet Commands v16
IMAP_Search

IMAP_Search 


 

IMAP_Search ( imap_ID ; critBusq ; arrayNumMsg ) -> resultado 
Parámetro Tipo   Descripción
imap_ID  Entero largo in Referencia de conexión IMAP
critBusq  Texto in Criterio de búsqueda
arrayNumMsg  Array entero largo in Array de los números de mensajes
resultado  Entero in Código de error

El comando IMAP_Search busca los mensajes que corresponden a los criterios definidos en el buzón actual. El parámetro criterioBusq contiene una o más palabras claves de búsqueda.
arrayNumMsg
devuelve la lista de los números de los mensajes encontrados por la búsqueda.

imap_ID
contiene la referencia de una sesión abierta con IMAP_Login.

criterioBusq contiene una o más palabras claves de búsqueda (ver “Palabras claves de búsqueda” al final de este párrafo) asociado o no a los valores de búsqueda. Un criterio de búsqueda puede ser una palabra clave simple o una lista de palabras claves entre paréntesis. Por ejemplo:

Palabraclave1 = FLAGGED
Palabraclave2 = NOT FLAGGED
Palabraclave3 = FLAGGED DRAFT

Nota: generalmente, la búsqueda no tiene en cuenta las mayúsculas y minúsculas.

  • Si el parámetro criterioBusq es una cadena vacía, la búsqueda equivaldrá a “seleccionar todos”:
     IMAP_Search(imap_ID;"";arrayNumMsg)

    ... devuelve todos los mensajes del buzón actual.
  • Si el parámetro criterioBusq contiene varias palabras claves de búsqueda, el resultado es la intersección (función Y) de todos los mensajes que contienen esas palabras claves.
    criterioBusq = FLAGGED FROM "SMITH"
    ... devuelve todos los mensajes con el marcador \Flagged Y enviados por Smith.
  • Puede utilizar los operadores OR o NOT:
    criterioBusq = OR SEEN FLAGGED
    ... devuelve todos los mensajes con el marcador \Seen O \Flagged
    criterioBusq = NOT SEEN
    ... devuelve todos los mensajes sin el marcador \Seen.
    criterioBusq = HEADER CONTENT-TYPE "MIXED" NOT HEADER CONTENT-TYPE "TEXT"...
    ... devuelve todos los mensajes donde el encabezado content-type contiene el tipo “Mixed” y no contiene “Text”.
    criterioBusq = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE "MIXED"
    ... devuelve todos los mensajes donde el encabezado content-type contiene el tipo “e” y donde el encabezado Asunto no contiene “o” y donde el encabezado content-type no es “Mixed”.
    criterioBusq = OR (ANSWERED SMALLER 400) (HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE "MIXED")
    ... devuelve todos los mensajes correspondientes a la primera lista de palabras claves entre paréntesis O a la segunda lista.
    criterioBusq = OR ANSWERED SMALLER 400 (HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE "MIXED")
    ... devuelve todos los mensajes con el marcador \Answered O cuyo tamaño es menor a 400 bytes Y cumplan con los criterios definidos en la lista entre paréntesis.

En los dos últimos ejemplos, el resultado obtenido es diferente cuando elimina los paréntesis de la primera lista de palabras claves.

  • El parámetro criterioBusq puede contener opcionalmente la instrucción [CHARSET]. Esta instrucción está compuesta de la palabra "CHARSET" seguida por un  conjunto de caracteres definido [CHARSET] (US ASCII, ISO-8859). Esto indica el charset de la cadena criterioBusq. Por lo tanto, debe convertir la cadena de búsqueda en el conjunto de caracteres especificado si utiliza la instrucción [CHARSET] (ver el comando de 4D Mac to ISO).
    Por defecto, 4D Internet Commands codifica la cadena de criterios de búsqueda en "Quotable Printable" si la cadena contiene caracteres extendidos.
    criterioBusq = CHARSET "ISO-8859" BODY "Help"
    ... significa que el criterio de búsqueda utiliza el charset iso-8859 y que el servidor deberá convertir la cadena antes de comenzar la búsqueda, si es necesario.

Las palabras claves de búsqueda pueden tratar valores de los siguientes tipos:

  • Valores de tipo fecha

Los valores de tipo <fecha> deben tener este formato: día+"-"+mes+"-"+año donde día indica la fecha del día en el mes (máx. 2 caracteres), mes indica el mes (Ene/Feb/Mar/Abr/May/Jun/Jul/Agos/Sep/Oct/Nov/Dec) y año indica el año en 4 caracteres.

Ejemplo: criterioBusq = SENTBEFORE 1-Feb-2000 (por lo general no es necesario poner entre comillas una fecha ya que no contiene caracteres especiales)

  • Valores de tipo cadena

Los valores de tipo <cadena> pueden contener todo tipo de caracteres y deben estar entre comillas. Si la cadena no contiene caracteres especiales, como espacios por ejemplo, no necesita las comillas. Las comillas le permiten asegurar que la cadena se interpretará correctamente.

Ejemplo: criterioBusq = FROM "SMITH"

Nota: las búsquedas basadas en cadenas de caracteres son de tipo "contiene": si el campo de un mensaje contiene al menos la cadena buscada, se encuentra el mensaje. La búsqueda no tiene en cuenta las mayúsculas y minúsculas.

  • Nombres de campos

Los valores de tipo <nom de campo> contienen el nombre de un campo de encabezado.

Ejemplo: criterioBusq = HEADER CONTENT-TYPE "MIXED"

  • Marcadores

Los valores de tipo <marcador> aceptan una o varias palabras claves (incluyendo los marcadores estándar), separadas por espacios.

Ejemplo: criterioBusq = KEYWORD \Flagged \Draft

  • Conjunto de mensajes
Los valores de este tipo designan un conjunto de mensajes. Contienen una lista de números de mensajes en un orden ascendente, de 1 al número total de mensajes en el buzón.
Los números están separados por comas; dos puntos indica un intervalo de números.

Ejemplos:
2,4:7,9,12:* representa los mensajes 2,4,5,6,7,9,12,13,14,15 para un buzón con 15 mensajes.

criterioBusq = 1:5 ANSWERED busca entre los mensajes 1 a 5 los que tienen el marcador \Answered.

criterioBusq = 2,4 ANSWERED busca entre los mensajes 2 y 4 los mensajes con el marcador \Answered.

ALL: todos los mensajes en el buzón.

ANSWERED: mensajes con el marcador \Answered.

UNANSWERED: mensajes que no tienen el marcador \Answered.

DELETED: mensajes con el marcador \Deleted.

UNDELETED: mensajes que no tienen el marcador \Deleted.

DRAFT: mensajes con el marcador \Draft.

UNDRAFT: mensajes que no tienen el marcador \Draft.

FLAGGED: mensajes con el marcador \Flagged.

UNFLAGGED: mensajes que no tienen el marcador \Flagged.

RECENT: mensajes con el marcador \Recent.

OLD: mensajes que no tienen el marcador \Recent.

SEEN: mensajes con el marcador \Seen.

UNSEEN: mensajes que no tienen el marcador \Seen.

NEW: mensajes con el marcador \Recent y el marcador \Seen. Equivale a “(RECENT UNSEEN)”.

KEYWORD <marcador>: mensajes con la palabra clave especificada.

UNKEYWORD <marcador>: mensajes que no tienen la palabra clave especificada.

BEFORE <fecha>: mensajes cuya fecha interna es anterior a la fecha especificada.

ON <fecha>: mensajes cuya fecha interna es igual a la fecha especificada.

SINCE <fecha>: mensajes cuya fecha interna es igual o posterior a la fecha especificada.

SENTBEFORE <fecha>: mensajes cuyo encabezado Fecha es anterior a la fecha especificada.

SENTON <fecha>: mensajes cuyo encabezado Fecha es igual a la fecha especificada.

SENTSINCE <fecha>: mensajes cuyo encabezado Fecha es igual o posterior a la fecha especificada.

TO <cadena>: mensajes que contienen la cadena especificada en el encabezado PARA.

FROM <cadena>: mensajes que contienen la cadena especificada en el encabezado DE.

CC <cadena>: mensajes que contienen la cadena especificada en el encabezado CC.

BCC <cadena>: mensajes que contienen la cadena especificada en el encabezado BCC.

SUBJECT <cadena>: mensajes que contienen la cadena especificada en el encabezado Asunto.

BODY <cadena>: mensajes donde el cuerpo contiene la cadena especificada.

TEXT <cadena>: mensajes que contienen la cadena especificada en el encabezado o en el cuerpo.

HEADER <field-name> <cadena>: mensajes donde el encabezado contiene el campo definido y este campo contiene la cadena definida.

UID <ID único del mensaje>: mensajes donde el número único corresponde al valor especificado.

LARGER <n>: mensajes con un tamaño superior al tamaño especificado.

SMALLER <n>: mensajes con un tamaño en bytes inferior al tamaño especificado.

NOT <criterio>: mensajes que no corresponden al criterio especificado.

OR <criterio1> <criterio2>: mensajes que corresponden al primer o segundo criterio especificado.



Ver también 

IMAP_GetFlags
IMAP_SetFlags

 
PROPIEDADES 

Producto: 4D Internet Commands
Tema: IC IMAP Review Mail
Número 88864

 
HISTORIA 

Creado por: 4D Internet Commands 6.8.1

 
ARTICLE USAGE

4D Internet Commands ( 4D Internet Commands v16)