FB_Pop3EMailClient

Descripción general

Tipo:

Bloque de funciones

Disponible desde:

V1.1.2.0

G-SE-0057577.1.gif-high.gif

 

 

Tarea

El bloque de funciones FB_Pop3EMailClient incluye las funciones relacionadas para recibir y eliminar mensajes de correo electrónico utilizando POP3. Cada instancia gestiona una conexión POP3.

Descripción funcional

El bloque de funciones FB_Pop3EMailClient es la interfaz de usuario para interactuar con un servidor POP3 (de correo electrónico) externo. Permite recibir y eliminar mensajes de correo electrónico. Mediante los adjuntos de los mensajes de correo electrónico recibidos puede obtener información de diversas características del sistema según archivos ubicados en la memoria del sistema. Determinadas extensiones de archivo no se pueden guardar en el sistema de archivos del controlador mediante FB_Pop3EMailClient (consulte el parámetro  ET_Email­Status.InvalidAttachmentExtension). Esto se aplica a los archivos gestionados automáticamente por el controlador y a archivos del sistema, como el firmware del controlador, para ayudar a evitar que se sobrescriban por error.

Caution_Color.gifATENCIÓN

PUNTERO NO VÁLIDO

Verifique la validez de los punteros al utilizarlos en direcciones y ejecutar el comando Cambio en línea.

El incumplimiento de estas instrucciones puede causar lesiones o daño al equipo.

Después de habilitar y ejecutar el bloque de funciones, se establece una conexión TCP con el servidor POP3 mediante las credenciales de usuario enviadas a través de iq_stCredentials. En cuanto se establece la conexión, se ejecuta el comando especificado con i_etCommand.

Al ejecutar el bloque de funciones, los punteros en i_pbyMessage y iq_stCre­dentilas.i_pbyWhiteListSender  se almacenan internamente para poder utilizarlos en el futuro. En el caso de que se detecte un evento de cambio online mientras se ejecuta el bloque de funciones (q_xBusy = TRUE), las variables de uso interno se actualizarán con el valor actual de los punteros.

NOTA: No reasigne i_pbyMessage ni iq_stCredentilas.i_pbyWhiteListSender  a un área de memoria distinta mientras se ejecute el bloque de funciones.

Cuando haya finalizado la transferencia de datos, el bloque de funciones cerrará la conexión TCP al servidor POP3. Los mensajes de correo electrónico se eliminan del servidor POP3.

El bloque de funciones FB_Pop3EMailClient guarda la información de los mensajes de correo electrónico recibidos en el área de memoria dirigida por el puntero i_pbyMailboxBuffer. Las posiciones del interior del búfer, que contienen la información respectiva de los diferentes mensajes de correo electrónico, se indican mediante los punteros dentro de la estructura iq_astInbox. En el caso de que el bloque de funciones FB_Pop3EMailClient esté habilitado y se detecte un evento de cambio online, el bloque de funciones reconocerá un posible cambio del puntero en i_pbyMailboxBuffer, por lo que los punteros proporcionados en la estructura iq_astInbox se actualizarán correspondientemente.

NOTA: Procese la información de los mensajes de correo electrónico recibidos antes de modificar la dirección del puntero i_pbyMailboxBuffer para la siguiente ejecución.

Es posible eliminar mensajes manualmente especificando el correo electrónico con el ID exclusivo en la entrada i_sUniqueId y ejecutando el comando de borrado con i_etCommand. Al ejecutar comandos adicionales, se restablece la estructura de la bandeja de entrada disponible en q_astInbox que contiene las referencias a los datos de correo electrónico.

Los mensajes de correo electrónico recibidos se almacenan en la memoria volátil. La memoria volátil se borra cuando se desconecta la alimentación y, por lo tanto, todos los mensajes de correo electrónico almacenados allí se eliminan.

AVISO

PÉRDIDA DE DATOS

Guarde los mensajes de correo electrónico entrantes en una memoria no volátil.

El incumplimiento de estas instrucciones puede causar daño al equipo.

Mientras el bloque de funciones se esté ejecutando, la salida q_xBusy se establece como TRUE. La salida q_xDone se establece como TRUE después de que el bloque funciones se haya ejecutado correctamente.

El diagrama muestra el comportamiento de la señal de las entradas y salidas del bloque de funciones:

G-SE-0053317.1.gif-high.gif

 

 

Los mensajes de estado y la información de diagnóstico se proporcionan usando las salidas q_xError (TRUE si se ha detectado un error), q_etResult y q_etResultMsg.

Para confirmar los errores detectados, deshabilite y vuelva a habilitar el bloque de funciones para poder recibir o eliminar un mensaje de correo electrónico.

Interfaz

Entrada

Tipo de datos

Descripción

i_xEnable

BOOL

Activación e inicialización del bloque de funciones.

i_xExecute

BOOL

El bloque de funciones recibe o elimina un mensaje de correo electrónico tras el flanco ascendente de esta entrada.

i_etCommand

ET_Command

La enumeración que indica el comando a ejecutar.

i_pbyMailboxBuffer

POINTER TO BYTE

Dirección de inicio del primer byte en el que se almacenan los mensajes de correo electrónico entrantes.

i_udiBufferSize

UDINT

Tamaño del búfer del buzón.

i_uiEMailsToReceive

UINT

Número de mensajes de correo electrónico a recibir del servidor.

i_sFilePath

STRING[200]

Ruta de la carpeta en el sistema de archivos del controlador donde se crea la carpeta EMailAttachments. En esta carpeta se guardan los adjuntos de los mensajes de correo electrónico recibidos. La extensión de archivo definida con el parámetro ET_EMailStatus.InvalidAttachmentExtension no se puede almacenar.

NOTA: Si recibe un segundo adjunto con un nombre idéntico a un adjunto que ya está disponible en esta carpeta, el archivo antiguo puede sobrescribirse si el parámetro global ST_CredentialsReceiveEMail.i_xOverwriteAttachment es TRUE.

Si esta cadena está vacía, se crea la carpeta EMailAttachments en la ruta de archivo predeterminada del controlador.

i_sUniqueID

STRING[70]

El ID exclusivo necesario para eliminar un mensaje de correo electrónico. Una vez recibido del servidor el mensaje de correo electrónico, el ID exclusivo se muestra en la salida q_astInbox.

Entrada/Salida

Tipo de datos

Descripción

iq_stCredentials

ST_CredentialsReceiveEMail

Se utiliza para pasar la estructura que contiene los ajustes de usuario, como el nombre de usuario o la contraseña.

iq_astInbox

ARRAY [1…GPL.Gc_udiInboxSize] OF ST_EMail

Estructura que contiene la información de los mensajes de correo electrónico recibidos.

Salida

Tipo de datos

Descripción

q_xActive

BOOL

Si el bloque de funciones está activo, esta salida se establece en TRUE.

q_xReady

BOOL

Si la inicialización es correcta, esta salida indica TRUE mientras el bloque de funciones esté operativo.

q_xBusy

BOOL

Si esta salida está configurada en TRUE, la ejecución del bloque de funciones está en curso.

q_xDone

BOOL

Si esta salida está configurada en TRUE, la ejecución se ha completado correctamente.

q_xError

BOOL

Si esta salida se establece en TRUE, se ha detectado un error. Para obtener información detallada, consulte q_etResult y q_etResultMsg.

q_etResult

ET_Result

Proporciona información de estado y diagnóstico.

q_sResultMsg

STRING[80]

Proporciona información adicional de estado y diagnóstico.

q_udiNumberOfEmails

UDINT

Depende del i_etCommand ejecutado:

oET_Command.CheckInbox: indica el número de mensajes de correo electrónico disponibles en el servidor.

oET_Command.Receive: indica el número de mensajes de correo electrónico recibidos del servidor.

Si se ha detectado un error, esta salida proporciona el número de mensajes de correo electrónico descargados correctamente.

oET_Command.Delete: indica el número de mensajes de correo electrónico eliminados.

Uso de las variables de tipo POINTER TO ... o REFERENCE TO ...

Este bloque de funciones proporciona entradas o entradas y salidas de tipo POINTER TO… o REFENCE TO…. Al utilizar un puntero o una referencia de este tipo, el bloque de funciones accede al área de memoria dirigida. En el caso de un evento de cambio online, es posible que las áreas de memoria se desplacen hacia nuevas direcciones y que, en consecuencia, un puntero o una referencia pasen a ser no válidos. Para evitar la presencia de errores relacionados con punteros no válidos, las variables de tipo POINTER TO… o REFERENCE TO… deberán actualizarse de manera cíclica o, al menos, al principio del ciclo en el que se utilicen.

Caution_Color.gifATENCIÓN

PUNTERO NO VÁLIDO

Verifique la validez de los punteros al utilizarlos en direcciones y ejecutar el comando Cambio en línea.

El incumplimiento de estas instrucciones puede causar lesiones o daño al equipo.