POP3Transporter
La clase POP3Transporter
permite recuperar mensajes de un servidor de correo POP3.
Objeto POP3 Transporter
Los objetos Transporter POP3 se instancian con el comando POP3 New transporter. Ofrecen las siguientes propiedades y funciones:
.acceptUnsecureConnection : Boolean True if 4D is allowed to establish an unencrypted connection |
.authenticationMode : Text the authentication mode used to open the session on the mail server |
.checkConnection() : Object checks the connection using information stored in the transporter object |
.connectionTimeOut : Integer the maximum wait time (in seconds) allowed to establish a connection to the server |
.delete( msgNumber : Integer ) marca el correo electrónico msgNumber para su eliminación del servidor POP3 |
.getBoxInfo() : Object devuelve un objeto boxInfo correspondiente al buzón designado por el objeto POP3 transporter |
.getMail( msgNumber : Integer { ; headerOnly : Boolean } ) : Object devuelve el objeto Email correspondiente al msgNumber en el buzón designado por el objeto POP3 transporter |
.getMailInfo( msgNumber : Integer ) : Object devuelve un objeto mailInfo correspondiente al msgNumber en el buzón designado por el transportador POP3 |
.getMailInfoList() : Collection devuelve una colección de objetos mailInfo que describen todos los mensajes en el buzón designado por el transportador POP3 |
.getMIMEAsBlob( msgNumber : Integer ) : Blob devuelve un BLOB con el contenido MIME del mensaje correspondiente al msgNumber en el buzón designado por el objeto POP3_transporter |
.host : Text the name or the IP address of the host server |
.logFile : Text the path of the extended log file defined (if any) for the mail connection |
.port : Integer the port number used for mail transactions |
.undeleteAll() elimina todas las marcas de eliminación definidas en los correos electrónicos en el transportador POP3 |
.user : Text the user name used for authentication on the mail server |
POP3 New transporter
Historia
Lanzamiento | Modificaciones |
---|---|
18 R2 | Añadidos |
POP3 New transporter( server : Object ) : 4D.POP3Transporter
Parámetros | Tipo | Descripción | |
---|---|---|---|
server | object | -> | Información del servidor de correo |
Result | 4D.POP3Transporter | <- | Objeto POP3 transporter |
Descripción
El comando POP3 New transporter
configura una nueva conexión POP3 en función del parámetro server y devuelve un nuevo objeto transporter POP3. El objeto transportador devuelto se utilizará normalmente para recibir correos electrónicos.
En el parámetro server, pase un objeto que contenga las siguientes propiedades:
server | Valor por defecto (si se omite) |
---|---|
.acceptUnsecureConnection : Boolean True if 4D is allowed to establish an unencrypted connection | False |
.accessTokenOAuth2: Text .accessTokenOAuth2: Object Cadena u objeto token que representa las credenciales de autorización OAuth2. Utilizado sólo con OAUTH2 authationMode . Si se utiliza accessTokenOAuth2 pero se omite authenticationMode , se utiliza el protocolo OAuth 2 (si el servidor lo permite). No se devuelve en el objeto SMTP transporter. | ninguno |
.authenticationMode : Text the authentication mode used to open the session on the mail server | se utiliza el modo de autenticación más seguro soportado por el servidor |
.connectionTimeOut : Integer the maximum wait time (in seconds) allowed to establish a connection to the server | 30 |
.host : Text the name or the IP address of the host server | obligatorio |
.logFile : Text the path of the extended log file defined (if any) for the mail connection | ninguno |
.password : Text contraseña de usuario para la autenticación en el servidor. No se devuelve en el objeto SMTP transporter. | ninguno |
.port : Integer the port number used for mail transactions | 995 |
.user : Text the user name used for authentication on the mail server | ninguno |
Result
La función devuelve un objeto POP3 transporter. Todas las propiedades devueltas son de sólo lectura**.
La conexión POP3 se cierra automáticamente cuando se destruye el objeto transportador.
Ejemplo
var $server : Object
$server:=New object
$server.host:="pop.gmail.com" //Obligatorio
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$server.logFile:="LogTest.txt" //log a registrar en la carpeta Logs
var $transporter : 4D.POP3Transporter
$transporter:=POP3 New transporter($server)
$status:=$transporter.checkConnection()
If(Not($status.success))
ALERT("An error occurred receiving the mail: "+$status.statusText)
End if
4D.POP3Transporter.new()
4D.POP3Transporter.new( server : Object ) : 4D.POP3Transporter
Parámetros | Tipo | Descripción | |
---|---|---|---|
server | Object | -> | Información del servidor de correo |
Result | 4D.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
(acceso directo).
.acceptUnsecureConnection
Historia
Lanzamiento | Modificaciones |
---|---|
17 R4 | Añadidos |
.acceptUnsecureConnection : Boolean
Descripción
The .acceptUnsecureConnection
property contains True if 4D is allowed to establish an unencrypted connection when encrypted connection is not possible.
It contains False if unencrypted connections are unallowed, in which case an error in returned when encrypted connection is not possible.
Los puertos seguros disponibles son:
-
SMTP
- 465: SMTPS
- 587 o 25: SMTP con actualización STARTTLS si lo soporta el servidor.
-
IMAP
- 143: Puerto IMAP no encriptado
- 993: IMAP con actualización STARTTLS si lo soporta el servidor
-
POP3
- 110: Puerto POP3 no encriptado
- 995: POP3 con actualización STARTTLS si lo soporta el servidor.
.authenticationMode
Historia
Lanzamiento | Modificaciones |
---|---|
17 R4 | Añadidos |
.authenticationMode : Text
Descripción
The .authenticationMode
property contains the authentication mode used to open the session on the mail server.
Por defecto, se utiliza el modo más seguro soportado por el servidor.
Los valores posibles son:
Valor | Constantes | Comentario |
---|---|---|
APOP | POP3 authentication APOP | Authentication using APOP protocol (POP3 only) |
CRAM-MD5 | POP3 authentication CRAM MD5 | Autenticación utilizando el protocolo CRAM-MD5 |
LOGIN | POP3 authentication login | Autenticación utilizando el protocolo LOGIN |
OAUTH2 | POP3 authentication OAUTH2 | Autenticación utilizando el protocolo OAuth2 |
PLAIN | POP3 authentication plain | Autenticación utilizando el protocolo PLAIN |
.checkConnection()
Historia
Lanzamiento | Modificaciones |
---|---|
17 R4 | Añadidos |
.checkConnection() : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
Result | Object | <- | Estado de la conexión del objeto transportador |
Descripción
The .checkConnection()
function checks the connection using information stored in the transporter object, recreates the connection if necessary, and returns the status. Esta función permite verificar que los valores proporcionados por el usuario son válidos y coherentes.
Objeto devuelto
La función envía una solicitud al servidor de correo y devuelve un objeto que describe el estado del correo. Este objeto puede contener las siguientes propiedades:
Propiedad | Tipo | Descripción | |
---|---|---|---|
success | boolean | True si la verificación es exitosa, False en caso contrario | |
status | number | (sólo SMTP) Código de estado devuelto por el servidor de correo (0 en caso de un problema no relacionado con el procesamiento del correo) | |
statusText | text | Mensaje de estado devuelto por el servidor de correo, o último error devuelto en la pila de errores de 4D | |
errors | collection | Pila de errores 4D (no se devuelve si se recibe una respuesta del servidor de correo) | |
[ ].errCode | number | Código de error 4D | |
[ ].message | text | Descripción del error 4D | |
[ ].componentSignature | text | Firma del componente interno que ha devuelto el error |
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
.connectionTimeOut
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.connectionTimeOut : Integer
Descripción
The .connectionTimeOut
property contains the maximum wait time (in seconds) allowed to establish a connection to the server. By default, if the property has not been set in the server object (used to create the transporter object with SMTP New transporter
, POP3 New transporter
, or IMAP New transporter
), the value is 30.
.delete()
Historia
Lanzamiento | Modificaciones |
---|---|
18 R2 | Añadidos |
.delete( msgNumber : Integer )
Parámetros | Tipo | Descripción | |
---|---|---|---|
msgNumber | Integer | -> | 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
Lanzamiento | Modificaciones |
---|---|
18 R2 | Añadidos |
.getBoxInfo() : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
Result | Object | <- | 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:
Propiedad | Tipo | Descripción |
---|---|---|
mailCount | Number | Número de mensajes en el buzón |
size | Number | Tamañ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
Lanzamiento | Modificaciones |
---|---|
20 | Soporte del parámetro *headerOnly |
18 R2 | Añadidos |
.getMail( msgNumber : Integer { ; headerOnly : Boolean } ) : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
msgNumber | Integer | -> | Número del mensaje en la lista |
headerOnly | Boolean | -> | True para descargar sólo los encabezados del correo electrónico (por defecto, False) |
Result | Object | <- | 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.
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
Lanzamiento | Modificaciones |
---|---|
18 R2 | Añadidos |
.getMailInfo( msgNumber : Integer ) : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
msgNumber | Integer | -> | Número del mensaje en la lista |
Result | Object | <- | 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:
Propiedad | Tipo | Descripción |
---|---|---|
size | Number | Tamaño del mensaje en bytes |
id | Text | ID ú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
Lanzamiento | Modificaciones |
---|---|
18 R2 | Añadidos |
.getMailInfoList() : Collection
Parámetros | Tipo | Descripción | |
---|---|---|---|
Result | Collection | <- | 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:
Propiedad | Tipo | Descripción |
---|---|---|
[ ].size | Number | Tamaño del mensaje en bytes |
[ ].number | Number | Número del mensaje |
[ ].id | Text | ID ú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
Lanzamiento | Modificaciones |
---|---|
18 R3 | Añadidos |
.getMIMEAsBlob( msgNumber : Integer ) : Blob
Parámetros | Tipo | Descripción | |
---|---|---|---|
msgNumber | Integer | -> | Número del mensaje en la lista |
Result | Blob | <- | 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)
.host
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.host : Text
Descripción
The .host
property contains the name or the IP address of the host server. Se utiliza para las transacciones de correo (SMTP, POP3, IMAP).
.logFile
Historia
Lanzamiento | Modificaciones |
---|---|
17 R5 | Añadidos |
.logFile : Text
Descripción
The .logFile
property contains the path of the extended log file defined (if any) for the mail connection. Puede ser relativo (a la carpeta actual Logs) o absoluto.
Unlike regular log files (enabled via the SET DATABASE PARAMETER
command), extended log files store MIME contents of all sent mails and do not have any size limit. Para más información sobre los archivos de registro extendidos, consulte:
- SMTP connections - 4DSMTPLog.txt
- POP3 connections - 4DPOP3Log.txt
- IMAP connections - 4DIMAPLog.txt
.port
Historia
Lanzamiento | Modificaciones |
---|---|
17 R4 | Añadidos |
.port : Integer
Descripción
The .port
property contains the port number used for mail transactions. By default, if the port property has not been set in the server object (used to create the transporter object with SMTP New transporter
, POP3 New transporter
, IMAP New transporter
), the port used is:
- SMTP - 587
- POP3 - 995
- IMAP - 993
.undeleteAll()
Historia
Lanzamiento | Modificaciones |
---|---|
18 R2 | Añadidos |
.undeleteAll()
Parámetros | Tipo | Descripció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
.
.user
Historia
Lanzamiento | Modificaciones |
---|---|
17 R4 | Añadidos |
.user : Text
Descripción
The .user
property contains the user name used for authentication on the mail server.