Tipo: |
Bloque de funciones |
Disponible desde: |
V1.1.2.0 |
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.
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_EmailStatus.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.
|
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_stCredentilas.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:
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.
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 |
|
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.
|
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. |