POP3Transporter
The POP3Transporter
class allows you to retrieve messages from a POP3 email server.
POP3 Transporter object
POP3 Transporter objects are instantiated with the POP3 New transporter command. They provide the following properties and functions:
.acceptUnsecureConnection : Boolean True si se permite a 4D establecer una conexión no cifrada |
.authenticationMode : Text el modo de autenticación utilizado para abrir la sesión en el servidor de correo |
.checkConnection() : Object comprueba la conexión utilizando la información almacenada en el objeto transporter |
.connectionTimeOut : Integer el tiempo máximo de espera (en segundos) permitido para establecer una conexión con el servidor |
.delete( msgNumber : Integer ) marca el email msgNumber a eliminar en el servidor POP3 |
.getBoxInfo() : Object devuelve un objeto |
.getMail( msgNumber : Integer ) : Object devuelve el objeto |
.getMailInfo( msgNumber : Integer ) : Object devuelve un objeto |
.getMailInfoList() : Collection devuelve una colección de objetos |
.getMIMEAsBlob( msgNumber : Integer ) : Blob devuelve un BLOB con el contenido MIME del mensaje correspondiente al msgNumber en el buzón designado por el |
.host : Text el nombre o la dirección IP del servidor local |
.logFile : Text la ruta del archivo de registro extendido definido (si existe) para la conexión de correo |
.port : Integer el número de puerto utilizado para las transacciones de correo |
.undeleteAll() elimina todas las banderas de borrado definidas en los correos electrónicos en el |
.user : Text el nombre de usuario utilizado para la autenticación en el servidor de correo |
POP3 New transporter
Histórico
Versión | Modificaciones |
---|---|
v18 R2 | Añadidos |
POP3 New transporter( server : Object ) : 4D.POP3Transporter
Parámetros | Tipo | Descripción | |
---|---|---|---|
server | objeto | -> | Información del servidor de correo |
Resultado | 4D.POP3Transporter | <- | Objeto POP3 transporter |
Descripción
El comando POP3 New transporter
configura una nueva conexión POP3en función del parámetro servidor y devuelve un nuevo objeto POP3 transporter. 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 si se permite a 4D establecer una conexión no cifrada | False |
.accessTokenOAuth2: Text .accessTokenOAuth2: Object Text string or token object representing OAuth2 authorization credentials. Used only with OAUTH2 | ninguno |
.authenticationMode : Text el modo de autenticación utilizado para abrir la sesión en el servidor de correo | the most secure authentication mode supported by the server is used |
.connectionTimeOut : Integer el tiempo máximo de espera (en segundos) permitido para establecer una conexión con el servidor | 30 |
.host : Text el nombre o la dirección IP del servidor local | obligatorio |
.logFile : Text la ruta del archivo de registro extendido definido (si existe) para la conexión de correo | ninguno |
.password : Text Contraseña del usuario para la autenticación en el servidor. Not returned in SMTP transporter object. | ninguno |
.port : Integer el número de puerto utilizado para las transacciones de correo | 995 |
.user : Text el nombre de usuario utilizado para la autenticación en el servidor de correo | ninguno |
Resultado
La función devuelve un objeto POP3 transporter. Todas las propiedades devueltas son de sólo lectura.
The POP3 connection is automatically closed when the transporter object is destroyed.
Ejemplo
var $server : Object
$server:=New object
$server.host:="pop.gmail.com" //Mandatory
$server.port:=995
$server.user:="4d@gmail.com"
$server.password:="XXXXXXXX"
$server.logFile:="LogTest.txt" //log to save in the Logs folder
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 | Objeto | -> | Información del servidor de correo |
Resultado | 4D.POP3Transporter | <- | Objeto POP3 transporter |
Descripción
La función 4D.POP3Transporter.new()
crea y devuelve un nuevo objeto del tipo 4D.POP3Transporter
. Es idéntico al comando POP3 New transporter
(acceso directo).
.acceptUnsecureConnection
Histórico
Versión | Modificaciones |
---|---|
v17 R4 | Añadidos |
.acceptUnsecureConnection : Boolean
Descripción
La propiedad .acceptUnsecureConnection
contiene True si se permite a 4D establecer una conexión no cifrada cuando la conexión cifrada no es posible.
It contains False if unencrypted connections are unallowed, in which case an error in returned when encrypted connection is not possible.
Available secured ports are:
SMTP
- 465: SMTPS
- 587 or 25: SMTP with STARTTLS upgrade if supported by the server.
IMAP
- 143: IMAP non-encrypted port
- 993: IMAP with STARTTLS upgrade if supported by the server
POP3
- 110: POP3 non-encrypted port
- 995: POP3 con actualización STARTTLS si lo soporta el servidor.
.authenticationMode
Histórico
Versión | Modificaciones |
---|---|
v17 R4 | Añadidos |
.authenticationMode : Text
Descripción
The .authenticationMode
property contains the authentication mode used to open the session on the mail server.
By default, the most secured mode supported by the server is used.
Los valores posibles son:
Valor | Constantes | Comentario |
---|---|---|
APOP | POP3 authentication APOP | Authentication using APOP protocol (POP3 only) |
CRAM-MD5 | POP3 authentication CRAM-MD5 | Authentication using CRAM-MD5 protocol |
LOGIN | POP3 authentication login | Authentication using LOGIN protocol |
OAUTH2 | POP3 authentication OAUTH2 | Authentication using OAuth2 protocol |
PLAIN | POP3 authentication plain | Authentication using PLAIN protocol |
.checkConnection()
Histórico
Versión | Modificaciones |
---|---|
v17 R4 | Añadidos |
.checkConnection() : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
Resultado | Objeto | <- | Estado de la conexión del objeto transportador |
Descripción
La función .checkConnection()
comprueba la conexión utilizando la información almacenada en el objeto transporter, recrea la conexión si es necesario y devuelve el estado. 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 | booleano | True if the check is successful, False otherwise | |
status | number | (SMTP only) Status code returned by the mail server (0 in case of an issue unrelated to the mail processing) | |
statusText | texto | Status message returned by the mail server, or last error returned in the 4D error stack | |
errors | colección | 4D error stack (not returned if a mail server response is received) | |
[ ].errCode | number | Código de error 4D | |
[ ].message | texto | Description of the 4D error | |
[ ].componentSignature | texto | 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
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.connectionTimeOut : Integer
Descripción
La propiedad .connectionTimeOut
contiene el tiempo máximo de espera (en segundos) permitido para establecer una conexión con el servidor. 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()
Histórico
Versión | Modificaciones |
---|---|
v18 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 email msgNumber a eliminar en el servidor POP3.
En el parámetro msgNumber, pase el número del correo electrónico a 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 electrónico 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()
.
If the current session unexpectedly terminates and the connection is closed (e.g., timeout, network failure, etc.), an error message is generated and messages marked for deletion will remain on the POP3 server.
Ejemplo
$mailInfoList:=$POP3_transporter.getMailInfoList()
For each($mailInfo;$mailInfoList)
// Mark your mail as "to be deleted at the end of the session"
$POP3_transporter.delete($mailInfo.number)
End for each
// Force the session closure to delete the mails marked for deletion
CONFIRM("Selected messages will be deleted.";"Delete";"Undo")
If(OK=1) //deletion confirmed
$POP3_transporter:=Null
Else
$POP3_transporter.undeleteAll() //remove deletion flags
End if
.getBoxInfo()
Histórico
Versión | Modificaciones |
---|---|
v18 R2 | Añadidos |
.getBoxInfo() : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
Resultado | Objeto | <- | objeto boxInfo |
Descripción
La función .getBoxInfo()
devuelve un objeto boxInfo
correspondiente al buzón designado por el 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 | Número | Número de mensajes en el buzón |
size | Número | Tamaño del mensaje en bytes |
Ejemplo
var $server; $boxinfo : Object
$server:=New object
$server.host:="pop.gmail.com" //Mandatory
$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()
Histórico
Versión | Modificaciones |
---|---|
v18 R2 | Añadidos |
.getMail( msgNumber : Integer ) : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
msgNumber | Integer | -> | Número del mensaje en la lista |
Resultado | Objeto | <- | Objeto Email |
Descripción
La función .getMail()
devuelve el objeto Email
correspondiente al msgNumber en el buzón designado por el POP3 transporter
. Esta función le permite manejar localmente el contenido del correo electrónico.
Pase en msgNumber el número del mensaje a recuperar. Este número es devuelto en la propiedad number por la función .getMailInfoList()
.
El método devuelve Null si:
- msgNumber designates a non-existing message,
- the message was marked for deletion using
.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" //Mandatory
$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()
Histórico
Versión | Modificaciones |
---|---|
v18 R2 | Añadidos |
.getMailInfo( msgNumber : Integer ) : Object
Parámetros | Tipo | Descripción | |
---|---|---|---|
msgNumber | Integer | -> | Número del mensaje en la lista |
Resultado | Objeto | <- | objeto mailInfo |
Descripción
La función .getMailInfo()
devuelve un objeto mailInfo
correspondiente al msgNumber en el buzón designado por el POP3 transporter
. Esta función permite recuperar la información sobre el email.
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 | Número | Tamaño del mensaje en bytes |
id | Texto | ID único del mensaje |
El método devuelve Null si:
- msgNumber designates a non-existing message,
- the message was marked for deletion using
.delete( )
.
Ejemplo
var $server; $mailInfo : Object
var $mailNumber : Integer
$server.host:="pop.gmail.com" //Mandatory
$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) //get the first mail
If($mailInfo #Null)
ALERT("First mail size is:"+String($mailInfo.size)+" bytes.")
End if
.getMailInfoList()
Histórico
Versión | Modificaciones |
---|---|
v18 R2 | Añadidos |
.getMailInfoList() : Collection
Parámetros | Tipo | Descripción | |
---|---|---|---|
Resultado | Collection | <- | Colección de objetos mailInfo |
Descripción
La función .getMailInfoList()
devuelve una colección de objetos mailInfo
que describen todos los mensajes del buzón designado por el POP3 transporter
. 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 | Número | Tamaño del mensaje en bytes |
[ ].number | Número | Número del mensaje |
[ ].id | Texto | 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 del 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 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" //Mandatory
$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()
Histórico
Versión | Modificaciones |
---|---|
v18 R3 | Añadidos |
.getMIMEAsBlob( msgNumber : Integer ) : Blob
Parámetros | Tipo | Descripción | |
---|---|---|---|
msgNumber | Integer | -> | Número del mensaje en la lista |
Resultado | 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 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 designates a non-existing message,
- 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
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.host : Text
Descripción
La propiedad .host
contiene el nombre o la dirección IP del servidor local. Used for mail transactions (SMTP, POP3, IMAP).
.logFile
Histórico
Versión | Modificaciones |
---|---|
v17 R5 | Añadidos |
.logFile : Text
Descripción
La propiedad .logFile
contiene la ruta del archivo de registro extendido definido (si existe) para la conexión de correo. It can be relative (to the current Logs folder) or absolute.
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. For more information about extended log files, refer to:
- SMTP connections - 4DSMTPLog.txt
- POP3 connections - 4DPOP3Log.txt
- IMAP connections - 4DIMAPLog.txt
.port
Histórico
Versión | Modificaciones |
---|---|
v17 R4 | Añadidos |
.port : Integer
Descripción
La propiedad .port
contiene el número de puerto utilizado para las transacciones de correo. 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()
Histórico
Versión | Modificaciones |
---|---|
v18 R2 | Añadidos |
.undeleteAll() | Parámetros | Tipo | | Descripción | | ---------- | ---- |::| ---------------------------- | | | | | No requiere ningún parámetro |
Descripción
La función .undeleteAll()
elimina todas las banderas de borrado definidas en los correos electrónicos en el POP3_transporter
.
.user
Histórico
Versión | Modificaciones |
---|---|
v17 R4 | Añadidos |
.user : Text
Descripción
La propiedad .user
contiene el nombre de usuario utilizado para la autenticación en el servidor de correo.