Saltar al contenido principal
Versión: 20 R10

POP3Transporter

La clase POP3Transporter permite recuperar mensajes de un servidor de correo POP3.

Objeto POP3 Transporter

Los objetos POP3 Transporter son instanciados con el comando POP3 New transporter. Ofrecen las siguientes propiedades y funciones:
















4D.POP3Transporter.new()

4D.POP3Transporter.new*( server : Object ) : 4D.POP3Transporter

ParámetrosTipoDescripción
serverObject->Información del servidor de correo
Resultado4D.POP3Transporter<-Objeto POP3 transporter

Descripción

La función 4D.POP3Transporter.new() crea y devuelve un nuevo objeto de tipo 4D.POP3Transporter. Es idéntico al comando POP3 New transporter (atajo).

Ejemplo

 var $pw :  Text
var $options : Object
$options:=New object

$pw:=Request("Please enter your password:")
if(OK=1)
$options.host:="pop3.gmail.com"

$options.user:="test@gmail.com"
$options.password:=$pw

$transporter:=POP3 New transporter($options)

$status:=$transporter.checkConnection()
If($status.success)
ALERT("POP3 connection check successful!")
Else
ALERT("Error: "+$status.statusText)
End if
End if

.delete()

Historia
LanzamientoModificaciones
18 R2Añadidos

.delete*( msgNumber : Integer )

ParámetrosTipoDescripción
msgNumberInteger->Número del mensaje a eliminar
Descripción

La función .delete( ) marca el correo electrónico msgNumber para su eliminación del servidor POP3.

En el parámetro msgNumber, pase el número del correo electrónico que desea eliminar. Este número es devuelto en la propiedad number por el método .getMailInfoList().

La ejecución de este método no elimina realmente ningún correo electrónico. El correo marcado se eliminará del servidor POP3 sólo cuando se destruya el objeto POP3_transporter (creado con POP3 New transporter). El marcador también puede eliminarse utilizando el método .undeleteAll().

Si la sesión actual termina inesperadamente y se cierra la conexión (por ejemplo, por tiempo de espera, fallo de la red, etc.), se genera un mensaje de error y los mensajes marcados para ser borrados permanecerán en el servidor POP3.

Ejemplo
 $mailInfoList:=$POP3_transporter.getMailInfoList()
For each($mailInfo;$mailInfoList)
// Marcar el correo como "a eliminar al final de la sesión"
$POP3_transporter.delete($mailInfo.number)
End for each
// Forzar el cierre de sesión para eliminar los correos marcados para ser borrados
CONFIRM("Selected messages will be deleted.";"Delete";"Undo")
If(OK=1) //borrado confirmado
$POP3_transporter:=Null
Else
$POP3_transporter.undeleteAll() //eliminar los marcadores de eliminación
End if

.getBoxInfo()

Historia
LanzamientoModificaciones
18 R2Añadidos

.getBoxInfo()* : Object

ParámetrosTipoDescripción
ResultadoObject<-objeto boxInfo
Descripción

La función .getBoxInfo() devuelve un objeto boxInfo correspondiente al buzón designado por el objeto POP3 transporter. Esta función permite recuperar la información sobre el buzón.

El objeto boxInfo devuelto contiene las siguientes propiedades:

PropiedadTipoDescripción
mailCountNumberNúmero de mensajes en el buzón
sizeNumberTamaño del mensaje en bytes
Ejemplo
 var $server; $boxinfo : Object

$server:=New object
$server.host:="pop.gmail.com" //Obligatorio
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

$transporter:=POP3 New transporter($server)

//mailbox info
$boxInfo:=$transporter.getBoxInfo()
ALERT("The mailbox contains "+String($boxInfo.mailCount)+" messages.")

.getMail()

Historia
LanzamientoModificaciones
20Soporte del parámetro *headerOnly
18 R2Añadidos

.getMail*( msgNumber : Integer { ; headerOnly : Boolean } ) : Object

ParámetrosTipoDescripción
msgNumberInteger->Número del mensaje en la lista
headerOnlyBoolean->True para descargar sólo los encabezados del correo electrónico (por defecto, False)
ResultadoObject<-Objet Email
Descripción

La función .getMail() devuelve el objeto Email correspondiente al msgNumber en el buzón designado por el objeto POP3 transporter. Esta función permite recuperar la información sobre el email.

Pase en msgNumber el número del mensaje a recuperar. Este número es devuelto en la propiedad number por la función .getMailInfoList().

Opcionalmente, puede pasar true en el parámetro headerOnly para excluir las partes del cuerpo del objeto Email devuelto. Solo las propiedades de encabezado (headers, to, from...) se devuelven. Esta opción permite optimizar el paso de descarga cuando hay muchos correos electrónicos en el servidor.

nota

Es posible que el servidor no soporte la opción headerOnly.

El método devuelve Null si:

  • msgNumber designa un mensaje inexistente,
  • el mensaje fue marcado para borrado utiizando .delete().

Objeto devuelto

.getMail() devuelve un objeto Email.

Ejemplo

Quiere saber el remitente del primer correo del buzón:

 var $server; $transporter : Object
var $mailInfo : Collection
var $sender : Variant

$server:=New object
$server.host:="pop.gmail.com" //Obligatorio
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

$transporter:=POP3 New transporter($server)

$mailInfo:=$transporter.getMailInfoList()

$sender:=$transporter.getMail($mailInfo[0].number).from

.getMailInfo()

Historia
LanzamientoModificaciones
18 R2Añadidos

.getMailInfo*( msgNumber : Integer ) : Object

ParámetrosTipoDescripción
msgNumberInteger->Número del mensaje en la lista
ResultadoObject<-objeto mailInfo
Descripción

La función .getMailInfo() devuelve un objeto mailInfo correspondiente al msgNumber en el buzón designado por el transportador POP3. Esta función permite gestionar localmente la lista de mensajes localizados en el servidor de correo POP3.

En msgNumber, pase el número del mensaje a recuperar. Este número es devuelto en la propiedad number por el método .getMailInfoList().

El objeto mailInfo devuelto contiene las siguientes propiedades:

PropiedadTipoDescripción
sizeNumberTamaño del mensaje en bytes
idTextID único del mensaje

El método devuelve Null si:

  • msgNumber designa un mensaje inexistente,
  • el mensaje se marcó para su eliminación utilizando .delete( ).
Ejemplo
 var $server; $mailInfo : Object
var $mailNumber : Integer

$server.host:="pop.gmail.com" //Obligatorio
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

var $transporter : 4D.POP3Transporter
$transporter:=POP3 New transporter($server)

//message info
$mailInfo:=$transporter.getMailInfo(1) //obtener el primer e-mail
If($mailInfo #Null)
ALERT("First mail size is:"+String($mailInfo.size)+" bytes.")
End if

.getMailInfoList()

Historia
LanzamientoModificaciones
18 R2Añadidos

.getMailInfoList()* : Collection

ParámetrosTipoDescripción
ResultadoCollection<-Colección de objetos mailInfo
Descripción

La función .getMailInfoList() devuelve una colección de objetos mailInfo que describen todos los mensajes en el buzón designado por el transportador POP3. Esta función permite gestionar localmente la lista de mensajes localizados en el servidor de correo POP3.

Cada objeto mailInfo de la colección devuelta contiene las siguientes propiedades:

PropiedadTipoDescripción
[ ].sizeNumberTamaño del mensaje en bytes
[ ].numberNumberNúmero del mensaje
[ ].idTextID único del mensaje (útil si almacena el mensaje localmente)

Si el buzón no contiene ningún mensaje, se devuelve una colección vacía.

Propiedades number e ID

number es el número de un mensaje en el buzón en el momento en que se creó el POP3_transporter. La propiedad number no es un valor estático en relación con ningún mensaje específico y cambiará de una sesión a otra dependiendo de su relación con otros mensajes en el buzón en el momento en que se abrió la sesión. Los números asignados a los mensajes sólo son válidos durante la vigencia del objeto POP3_transporter. En el momento en que el POP3_transporter sea eliminado cualquier mensaje marcado para ser borrado será eliminado. Cuando el usuario vuelva a conectarse al servidor, los mensajes actuales en el buzón serán renumerados de 1 a x.

Sin embargo, el id es un número único asignado al mensaje cuando fue recibido por el servidor. Este número se calcula utilizando la hora y la fecha de recepción del mensaje y es un valor asignado por su servidor POP3. Lamentablemente, los servidores POP3 no utilizan el id como referencia principal de sus mensajes. A lo largo de las sesiones POP3 deberá especificar el number como referencia a los mensajes del servidor. Los desarrolladores deben tener cierto cuidado si desarrollan soluciones que introducen referencias a los mensajes en una base de datos pero dejan el cuerpo del mensaje en el servidor.

Ejemplo

Quiere saber el número total y el tamaño de los correos electrónicos en el buzón:

 var $server : Object
$server:=New object
$server.host:="pop.gmail.com" //Obligatorio
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

var $transporter : 4D.POP3Transporter
$transporter:=POP3 New transporter($server)

C_COLLECTION($mailInfo)
C_LONGINT($vNum;$vSize)

$mailInfo:=$transporter.getMailInfoList()
$vNum:=$mailInfo.length
$vSize:=$mailInfo.sum("size")

ALERT("The mailbox contains "+String($vNum)+" message(s) for "+String($vSize)+" bytes.")

.getMIMEAsBlob()

Historia
LanzamientoModificaciones
18 R3Añadidos

.getMIMEAsBlob*( msgNumber : Integer ) : Blob

ParámetrosTipoDescripción
msgNumberInteger->Número del mensaje en la lista
ResultadoBlob<-Blob de la cadena MIME devuelta por el servidor de correo
Descripción

La función .getMIMEAsBlob() devuelve un BLOB con el contenido MIME del mensaje correspondiente al msgNumber en el buzón designado por el objeto POP3_transporter.

En msgNumber, pase el número del mensaje a recuperar. Este número es devuelto en la propiedad number por el método .getMailInfoList().

El método devuelve un BLOB vacío si:

  • msgNumber designa un mensaje inexistente,
  • el mensaje se marcó para su eliminación utilizando .delete().

BLOB devuelto

.getMIMEAsBlob() devuelve un BLOB que puede almacenarse en una base de datos o convertirse en un objeto Email con el comando MAIL Convert from MIME.

Ejemplo

Quiere saber el número total y el tamaño de los correos electrónicos en el buzón:

 var $server : Object
var $mailInfo : Collection
var $blob : Blob
var $transporter : 4D.POP3Transporter

$server:=New object
$server.host:="pop.gmail.com"
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"

$transporter:=POP3 New transporter($server)

$mailInfo:=$transporter.getMailInfoList()
$blob:=$transporter.getMIMEAsBlob($mailInfo[0].number)

.undeleteAll()

Historia
LanzamientoModificaciones
18 R2Añadidos

*.undeleteAll()**

ParámetrosTipoDescripción
No requiere ningún parámetro
Descripción

La función .undeleteAll() elimina todas las marcas de eliminación definidas en los correos electrónicos en el transportador POP3.