4D v18 introdujo una nueva forma fácil de usar y poderosa de crear y enviar correos electrónicos. Una forma que le permite enviar correos electrónicos llamativos basados en HTML (con imágenes, videos y archivos adjuntos), utilizando sólo unas pocas líneas de código. En 4D v18 R2, hemos añadido la capacidad de descargar localmente sus correos electrónicos y eliminarlos de su servidor de correo electrónico. En esta entrada del blog, repasaremos las nuevas posibilidades que esto ofrece.
El nuevo POP3 New transporter le permite utilizar el protocolo POP3 para gestionar el correo electrónico. El protocolo POP (Post Office Protocol) es un protocolo estándar para recuperar el correo electrónico de un servidor de correo. Es útil para acciones como conectarse a un servidor POP3, recuperar mensajes para procesarlos automáticamente y/o almacenarlos en su base de datos local, y borrarlos del servidor.
Descarga de buzones POP3 de HDI
Crear un transportador pop3
Al igual que con SMTP, cuando se utiliza el protocolo POP3 primero hay que crear un transportador POP3 (mediante el comando POP3 New transporter ):
$server:=New object
$server .host:="tuPOP3host.com"
$server .port:=995
$server .user:="4D.POP3@mail.com"
$server .password:="XXXXXX"
// Create a transporter from your server information
$POP3 transporter:=POP3 New transporter($server)
Información de correo
Puede obtener información sobre todos los mensajes de su buzón con el método getMailInfoList() de su objeto transportador POP3. La lista devuelta contiene, en particular, un número de mensaje que identifica cada correo electrónico durante la transacción POP3:
$mailInfos:=$POP3 transporter.getMailInfoList()
Si necesita información de un solo mensaje, puede utilizar también el método getMailInfo() Si necesita la información de un solo mensaje, puede utilizar también el método … simplemente pasando el número de mensaje como parámetro:
$mailInfo:=$POP3 transporter.getMailInfo($mailNumber
)
recibir correo electrónico
Puede descargar todos los mensajes o mensajes específicos utilizando el método getMail() método. Para descargar un mensaje específico, simplemente pase el número de mensaje devuelto por getMailInfoList() como parámetro a este método. El siguiente ejemplo muestra cómo descargar todos los mensajes de su buzón:
$mailInfos:=$POP3 transporter.getMailInfoList()
$mails :=New collection
For each ($mail;$mailInfos)
// Download email
$mails .
push($transporter.getMail($mail.number))
End for each
borrar el correo electrónico
Puede marcar un mensaje para que se elimine durante el cierre de la sesión con el método delete() método. De la misma manera que el método getMail() pase el número de mensaje devuelto por el método getMailInfoList() como parámetro. Por ejemplo, si quiere descargar y borrar todos los mensajes de su buzón:
$mailInfos:=$POP3 transporter.getMailInfoList()
For each ($mailInfo;$mailInfos)
// Download email
ProcessMail ($POP3 transporter.getMail($mailInfo.number))
// Flag messages "to be deleted at the end of the session"
. ( . ) $POP3 transporterdelete$mailInfonumber
End for each
// Force the session closure to delete the messages flagged for deletion
$POP3 transporter:=Null
Información del buzón
Puede obtener el número de mensajes de su buzón y el tamaño del mismo con el método getBoxInfo() método:
$boxInfo:=$POP3 transporter.getBoxInfo()
ALERT ("Tamaño: "+String($boxInfo.size)+" - Recuento: "+String($boxInfo.mailCount))
transacción de registro
Al igual que con los registros SMTP, puedes registrar todas tus transacciones POP3. Hay dos maneras de crear el registro:
- Ejecutar un registro POP3 en el servidor – haga clic en el botón «Start Request and Debug Logs» en su 4D Server
- Registrar una transacción específica (durante la depuración, por ejemplo): utilice la propiedad logFile del objeto transportador POP3:
$server.host:="yourpop3server.com"
$server .user:="login"
$server .password:="psw"
// Enter the path of the log file you want to create
$server .logFile:="C:\tmp\\POP3Log.txt"
$transporter :=POP3 New transporter($server)
Puede probar todos estos comandos con el IDH anterior.