Accueil > Forum > Programmation IEC 61131 (LogicLab) > Nouveau bloc fonctionnel pour l'envoi de courrier électronique
- Ce sujet a 25 réponses, 1 participant et a été mis à jour pour la dernière fois il y a 4 ans da Sergio Bertana.
-
auteurPost
-
Mars 17, 2017 à 5: pm 22 #36118Sergio BertanaAdministrateur du forum
Le nouveau bloc fonctionnel a été libéré emailEnvoyer (Extrait manuel) qui permet l'envoi d'e-mails depuis nos systèmes programmables. J'ai fait un programme de démonstration simple qui peut être utilisé pour tester son fonctionnement. Bien entendu, vous devez définir l'URL du serveur SMTP à utiliser pour le transfert et les informations de connexion.
Le FB ne gère pas le cryptage TLS, donc GMail ne peut pas être utilisé comme serveur SMTP relais. Télécharger le programme EMailSendExample.
Mars 21, 2017 à 8: pm 46 #39880PaulPartecipanteDésolé, mais je ne trouve pas la bibliothèque eLLabNetworkLib_A400.
Mars 24, 2017 à 7: 11 am #39881Sergio BertanaAdministrateur du forumLa bibliothèque est actuellement en construction, nous ne l'avons donc pas encore publiée, mais si vous téléchargez le projet dans l'article, vous trouverez également le FB à l'intérieur emailEnvoyer ce dont tu as besoin
Ayant le projet, avec des objets d'exportation, vous pouvez exporter le FB et l'utiliser dans vos projets.
Octobre 1, 2019 à 7: 16 am #50108RuboxPartecipanteExiste-t-il des limites particulières à la longueur autorisée des chaînes transmises au FB EmailSend? Si les données sont dans les caractères 256, l'e-mail est envoyé sans l'activation de Fault et le corps de l'e-mail est visible.
Si Data dépasse les caractères 256, l'e-mail est toujours envoyé sans l'activation de Fault, mais le corps de l'e-mail n'est pas présent.
J'ai essayé d'espionner les commandes du serveur SMTP et je ne vois rien d'étrange (pour autant que je puisse les interpréter) et je n'ai pas d'erreur avec SysGetLastError.
Octobre 1, 2019 à 7: 19 am #50125Sergio BertanaAdministrateur du forumOui, il y a en fait une limite sur la taille du texte de l'e-mail, il est actuellement bloqué à 256 caractères. Nous repensons la gestion du courrier électronique également en termes de cryptage, dès que nous pourrons résoudre les problèmes, nous sortirons avec quelque chose de nouveau et de plus performant.
Novembre 5, 2019 à 11: 08 am #50709RuboxPartecipanteEt je suppose qu'il n'y a aucune possibilité d'envoyer un e-mail depuis l'automate avec une pièce jointe…?
Mon client me demande que l'automate lui envoie le fichier sur la carte SD de l'automate en pièce jointe à un e-mail: existe-t-il un moyen de le faire?
Novembre 5, 2019 à 11: 10 am #50741Sergio BertanaAdministrateur du forumLes pièces jointes ne sont pas possibles, mais si le fichier est un fichier texte et / ou CSV, vous pouvez le lire et l'insérer dans le corps du message (sauf toujours la taille limite).
Novembre 6, 2019 à 3: pm 02 #50742RuboxPartecipanteEn ce moment, je fais cela pour envoyer un instantané des valeurs à des heures fixes, mais la limite de 256 caractères est "limitative": ce sont 6 valeurs échantillonnées toutes les 5 minutes pendant la journée.
Je cherchais à savoir si je pouvais mettre en place un SBC capable de gérer automatiquement le retrait du fichier via FTP à partir de la carte SD de l'automate, puis de l'envoyer par courrier électronique au client.
Novembre 6, 2019 à 3: pm 32 #50806Sergio BertanaAdministrateur du forumPour ajouter un système PC, vous pouvez évaluer notre solution basée sur Raspberry dans laquelle nous vous enverrons certainement un e-mail plus efficace.
Une autre solution adoptée par de nombreux clients consiste à envoyer les données du journal via REST à un serveur local / distant qui les stocke, puis génère le courrier électronique et l’envoie. Si vous connaissez le langage PHP, je joins le projet CloudLogger cela fait exactement ce dont vous avez besoin.
Encore une fois, le serveur PHP pourrait fonctionner sur SlimLine Framboise en même temps que le programme LogicLab.
Novembre 6, 2019 à 4: pm 23 #50809RuboxPartecipanteCe matin, j'ai vu qu'il existe des automates basés sur Raspberry. Et je comprends que sur ces modules vous pouvez programmer le CPU avec LogicLab, mais aussi la partie Linux (si j'ai compris la moindre partie de ce que j'ai lu).
Le programme que je crée (c'est fini mais ils demandent toujours des changements ...) envoie le fichier journal de la veille à mon FTP, tous les jours, et envoie les valeurs toutes les quelques secondes à ma page PHP sur un serveur qui les prend, il les vérifie et les met dans une base de données. Le Client hésite à me donner accès à son FTP ou à sa base de données sur le serveur.
Pour le moment, je vais les rendre disponibles avec un graphique sur une page HTML. Dès qu'il me tend un Raspberry et que je peux comprendre comment le faire, je le mets dans le réseau local de mon serveur FTP et je lui enverrai le fichier que je reçois.
Merci pour les suggestions.
Novembre 6, 2019 à 4: pm 33 #50811Sergio BertanaAdministrateur du forumOui vous avez raison SlimLine Raspberry peut être programmé avec LogicLab comme les autres modules SlimLine et peut simultanément exécuter des programmes en C ++, Phyton, PHP, Node-RED, etc.
Si vous recherchez des connaissances, vous trouverez des exemples, ainsi que le programme CloudLogger il peut être exécuté sur le module Raspberry à la fois du côté de LogicLab et du côté de PHP.
Novembre 7, 2019 à 7: 05 am #50812RuboxPartecipanteComme toujours, sa réponse était éclairante, dans le sens où j'avais déjà la solution prête mais je ne pouvais pas la voir (ni y arriver): de la même manière je prends des données de la base de données pour faire des graphiques sur des pages HTML ...
Je vais essayer de faire un script PHP appelé par SlimLine à partir du programme qui gère le changement de jour, qui prend les données, les assemble sous forme de corps de message et les envoie par mail (). Ou en utilisant une bibliothèque (PHPMailer) pour créer un fichier et l’envoyer en pièce jointe.
Entre autres choses, ce faisant, je peux également extraire des données de la base de données avec une périodicité différente d'une manière simple avec une requête.
Novembre 12, 2019 à 3: pm 19 #50968RuboxPartecipanteJe pose encore une autre question novice: combien de blocs EmailSend puis-je utiliser dans un programme?
J'ai besoin d'envoyer différents e-mails lorsque plusieurs événements se produisent. Ces événements peuvent également se produire dans le même cycle. Pour le moment, j'ai essayé de tout faire fonctionner avec différentes maisons, y compris la possibilité d'une erreur dans l'envoi d'un e-mail ... mais avec peu de succès: certains e-mails se perdent.
Je pensais créer un petit programme pour chaque événement à capturer et à gérer: mon seul reproche est si c'est SlimLine peut communiquer / utiliser plusieurs EmailSend en même temps ou non.
Je pensais aussi, alternativement, à créer un tableau de paires Sujet / Corps de l'e-mail dans lequel insérer l'e-mail lorsque l'événement se produit, puis suivre le message qui doit encore être envoyé et vérifier son envoi réel, à ce moment-là. vérifier si c'était le dernier message ou non, et ainsi de suite.
Toutes les suggestions sont les bienvenues.
Novembre 12, 2019 à 3: pm 24 #50971Sergio BertanaAdministrateur du forumLa limite est la mémoire et le nombre de sockets ouverts en même temps (il s’agit aujourd’hui de sockets 32), mais plutôt pour instancier beaucoup de FB émetteurs, eMail, je gérerais les concomitances d’événements à l’aide du FB. FIFOFile pour enregistrer l'événement dans le fichier FIFO et pouvoir ensuite l'extraire lorsque le FB d'envoi d'eMail est libre.
Je vous rappelle que les événements enregistrés dans le FIFO n'ont pas de limite de taille, il peut donc également s'agir du texte entier de l'e-mail et lorsque vous l'extrayez du FIFO, vous aurez l'indication de l'heure (heure de l'époque) du moment où vous l'avez chargé. Ensuite, vous pouvez envoyer l'e-mail en indiquant peut-être dans le sujet la date / heure exacte de la génération du texte.
Novembre 14, 2019 à 4: pm 40 #50974RuboxPartecipanteJe commence à bien lire et à étudier FIFOFile et à mettre en place la logique afin de ne pas fausser les choses.
Je dirais que les choses que je dois faire sont: enregistrer le message dans le FIFOFile (éventuellement une entrée multiple pour chaque adresse e-mail à envoyer), garder une trace du nombre d'entrées qui ont été faites. S'il y a quelque chose dans le FIFO, j'appelle la partie qui envoie le message. Après l'envoi, je diminue le compteur de messages FIFO ... et recommence avec le contrôle s'il y a des messages dans la file d'attente.
Alors ça devrait aller?
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.