Inicio > Foro > Programación IEC 61131 (LogicLab) > Nuevo bloque de funciones para enviar correos electrónicos
- Este tema tiene 25 respuestas, 1 participante y se actualizó por última vez 3 años, hace 11 meses da Sergio Bertana.
-
autorPublicación
-
Marzo 17, 2017 en 5: 22 pm #36118Sergio BertanaAdministrador del foro
El nuevo bloque de funciones ha sido liberado EMailSend (Extracto manual) que permite el envío de correos electrónicos desde nuestros sistemas programables. He creado un programa de demostración sencillo que se puede utilizar para probar su funcionamiento. Por supuesto, debe definir la URL del servidor SMTP que se utilizará para el reenvío y las credenciales de inicio de sesión.
El FB no maneja el cifrado TLS, por lo que GMail no se puede utilizar como servidor SMTP de retransmisión. Descargar programa EMailSendExample.
Marzo 21, 2017 en 8: 46 pm #39880PaulpartícipeLo siento pero no puedo encontrar la biblioteca eLLabNetworkLib_A400.
Marzo 24, 2017 en 7: 11 am #39881Sergio BertanaAdministrador del foroLa biblioteca está actualmente en construcción, por lo que aún no la hemos lanzado, pero si descargas el proyecto en la publicación, también encontrarás el FB dentro. EMailSend que necesitas
Teniendo el proyecto, con los objetos de exportación puedes exportar el FB y usarlo en tus proyectos.
Octubre 1, 2019 en 7: 16 am #50108Ruboxpartícipe¿Existen límites particulares en la longitud permitida de las cadenas pasadas al FB EmailSend? Si los datos están en los caracteres 256, el correo electrónico se envía sin activación por falla y el cuerpo del correo electrónico es visible.
Si los datos están más allá de los caracteres 256, el correo electrónico siempre se envía sin activación por falla, pero el cuerpo del correo electrónico no está presente.
Traté de espiar los comandos del servidor SMTP y no veo nada extraño (por lo que puedo interpretar) y no obtengo errores con SysGetLastError.
Octubre 1, 2019 en 7: 19 am #50125Sergio BertanaAdministrador del foroSí, en realidad hay un límite en el tamaño del texto del correo electrónico, actualmente está bloqueado en 256 caracteres. Estamos repensando la gestión del correo electrónico también con miras al cifrado, tan pronto como podamos resolver los problemas, se nos ocurrirá algo nuevo y de mayor rendimiento.
Noviembre 5, 2019 en 11: 08 am #50709RuboxpartícipeY supongo que no hay posibilidad de enviar un correo electrónico desde el PLC con un archivo adjunto…?
Mi cliente me pide que el PLC le envíe el archivo en la tarjeta SD del PLC como un archivo adjunto a un correo electrónico: ¿hay alguna manera de hacer esto?
Noviembre 5, 2019 en 11: 10 am #50741Sergio BertanaAdministrador del foroLos archivos adjuntos no son posibles, pero si el archivo es un archivo de texto y / o CSV, puede leerlo e insertarlo en el cuerpo del correo (excepto siempre el límite de tamaño).
Noviembre 6, 2019 en 3: 02 pm #50742RuboxpartícipeEn este momento estoy haciendo esto para enviar una instantánea de los valores en momentos establecidos, pero el límite de 256 caracteres es "limitante": son 6 valores muestreados cada 5 minutos durante el día.
Estaba buscando para ver si puedo obtener un SBC que pueda administrar automáticamente el retiro de archivos a través de FTP desde el PLC SD y luego enviarlo por correo electrónico al cliente.
Noviembre 6, 2019 en 3: 32 pm #50806Sergio BertanaAdministrador del foroPara agregar un sistema de PC, puede evaluar nuestra solución basada en Raspberry, donde sin duda le enviaremos un correo electrónico más eficiente.
Otra solución que muchos clientes han adoptado es enviar los datos de registro a través de REST a un servidor local / remoto que los almacena y luego genera el correo electrónico y lo envía. Si conoces el lenguaje PHP, adjunto el proyecto CloudLogger eso hace exactamente lo que necesitas.
De nuevo, el servidor PHP podría ejecutarse en SlimLine Frambuesa al mismo tiempo que el programa LogicLab.
Noviembre 6, 2019 en 4: 23 pm #50809RuboxpartícipeEsta mañana vi que hay PLC basados en Raspberry. Y entiendo que en estos módulos se puede programar la CPU con LogicLab, pero también la parte de Linux (si he entendido la menor parte de lo que he leído).
El programa que estoy creando (está terminado pero siempre piden cambios ...) envía el archivo de registro del día anterior a mi FTP, todos los días, y envía los valores cada pocos segundos a mi página PHP en un servidor que los toma, los comprueba y los pone en una base de datos. El Cliente se muestra reacio a darme acceso a su FTP o DB en el servidor.
Por ahora los pondré a disposición con un gráfico en una página html. Tan pronto como me entrega un Raspberry y puedo averiguar cómo hacerlo, lo pongo en la LAN de mi servidor FTP y le enviaré el archivo que recibo.
Gracias por las sugerencias
Noviembre 6, 2019 en 4: 33 pm #50811Sergio BertanaAdministrador del foroSi lo entendiste bien SlimLine Raspberry se puede programar con LogicLab como los otros módulos SlimLine y simultáneamente puede ejecutar programas en C ++, Phyton, PHP, Node-RED, etc.
Si observa los conocimientos, encontrará ejemplos y también el programa. CloudLogger se puede ejecutar en el módulo Raspberry tanto en el lado de LogicLab como en el lado de PHP.
Noviembre 7, 2019 en 7: 05 am #50812RuboxpartícipeComo siempre, su respuesta fue esclarecedora, en el sentido de que ya tenía la solución lista pero no podía verla (ni llegar): de la misma forma tomo datos de la base de datos para hacer gráficos en páginas HTML ...
Intentaré hacer un script PHP llamado por SlimLine del programa que gestiona el cambio de día, que toma los datos, los ensambla como un cuerpo de mensaje y los envía por correo (). O usando una biblioteca (PHPMailer) creando un archivo y enviándolo como un archivo adjunto.
Entre otras cosas, al hacerlo también puedo extraer datos de la base de datos con diferente periodicidad de forma sencilla con una consulta.
Noviembre 12, 2019 en 3: 19 pm #50968RuboxpartícipeHago otra pregunta para principiantes: ¿cuántos bloques de EmailSend puedo usar en un programa?
Necesito enviar diferentes correos electrónicos cuando ocurren múltiples eventos. Estos eventos también pueden ocurrir en el mismo ciclo. De momento he intentado que todo funcione con varias casas, incluida la posibilidad de un error en el envío de un correo electrónico ... pero con poco éxito: algunos correos se pierden.
Estaba pensando en crear un pequeño programa para capturar y gestionar cada evento: mi única queja es si es SlimLine puede comunicarse / usar más EmailSend al mismo tiempo o no.
También estaba pensando, alternativamente, en crear una matriz de pares de Asunto / Cuerpo de correo electrónico en los que insertar el correo electrónico cuando ocurra el evento y luego realizar un seguimiento de qué mensaje aún se debe enviar y verificar su envío real, en ese momento punto comprobar si fue el último mensaje o no, y así sucesivamente.
Cualquier sugerencia es bienvenida.
Noviembre 12, 2019 en 3: 24 pm #50971Sergio BertanaAdministrador del foroEl límite es la memoria y la cantidad de sockets abiertos al mismo tiempo (hoy son sockets 32), pero para crear instancias de muchos correos electrónicos de envío de FBs, manejaría las concomitancias de eventos usando el FB FIFOFile para guardar el evento en el archivo FIFO y luego poder extraerlo cuando el FB de envío de eMail sea libre.
Te recuerdo que los eventos guardados en el FIFO no tienen límites de tamaño por lo que también puede ser el texto completo del correo electrónico y cuando lo extraigas del FIFO tendrás la indicación de tiempo (Epoch time) de cuando lo cargaste. Luego, puede enviar el correo electrónico, quizás informando en el asunto la fecha / hora exacta en que se generó el texto.
Noviembre 14, 2019 en 4: 40 pm #50974RuboxpartícipeEmpiezo a leer bien y a estudiar FIFOFile y a armar la lógica para no equivocarme.
Diría que las cosas que tengo que hacer son: guardar el mensaje en el FIFOFile (posiblemente una entrada múltiple para cada dirección de correo electrónico a la que se enviará), realizar un seguimiento de cuántas entradas se han realizado. Si hay algo en el FIFO, llamo a la parte que envía el mensaje. Después de enviar, disminuyo el contador de mensajes FIFO ... y reinicio con la verificación si hay mensajes en la cola.
Entonces, ¿debería estar bien?
-
autorPublicación
- Debe iniciar sesión para responder a este tema.