Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Ici, j'aimerais expliquer la version 2 de ma bibliothèque EMailSender, une grande évolution par rapport à la version 1, avec la prise en charge d'Arduino avec w5100, w5200 et w5500 ethernet shield et les périphériques clones enc28J60, et la prise en charge d'esp32 et esp8266.
Maintenant, vous pouvez également ajouter des pièces jointes, chargées à partir d'un périphérique de stockage comme SD ou SPIFFS. Voici l'utilisation d'Ethernet Arduino.
Fournitures
- Arduino méga
- enc28J60
- carte SD
Étape 1: sélectionnez le bon appareil ENC28J60 ou W5100 Series
Arduino, normalement, gère le réseau avec un périphérique externe, le périphérique standard comme le w5100 utilise la bibliothèque Ethernet, les clones ENC28J60 ont des bibliothèques à sélectionner.
Pour sélectionner votre appareil, vous devez aller sur le fichier de bibliothèque EMailSenderKey.h et définir le bon
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Par défaut
La bibliothèque chargée pour gérer ce type d'appareil est UIPEthernet, vous pouvez trouver la bibliothèque sur le gestionnaire de bibliothèque de l'IDE Arduino
ou vous pouvez changer le type de réseau par défaut
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Il s'agit de l'implémentation standard et de l'utilisation de la bibliothèque Ethernet.
Une réflexion importante à considérer est que ce shield Ethernet ne prend pas en charge SSL ou TLS, vous devez donc trouver un fournisseur SMTP qui offre une connexion SMTP sans ce type de cryptage.
Je crée un sujet sur le forum où vous pouvez ajouter le fournisseur que vous utilisez, que vous pouvez également trouver le mien.
Étape 2: envoyer un e-mail simple
Pour envoyer un e-mail avec Arduino, vous devez trouver un fournisseur qui fonctionne sans SSL ni TLS. Pour ma solution, j'utilise le fournisseur SendGrid.
Je pense que l'utilisation est très très simple.
Vous devez donc définir le fournisseur
EMailSender emailSend("VOTRE-SENDGRID-API-KEY", "VOTRE-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Que vous devez créer un message et l'envoyer
EMailSender::EMailMessage message; message.subject = "Soggetto"; message.message = "Ciao come staiio bene.
EMailSender::Response resp = emailSend.send("[email protected]", message);
Serial.println("Statut d'envoi: ");
Serial.println(resp.status);
Serial.println(resp.code); Serial.println(resp.desc);
Étape 3: Connectez un chariot SD pour gérer les pièces jointes
Que pour envoyer des pièces jointes, vous devez connecter une carte SD comme dans le schéma, si vous avez besoin de plus d'informations sur la connexion, reportez-vous à cet article "Comment utiliser une carte SD avec esp8266, esp32 et Arduino".
Étape 4: envoyer un e-mail avec des pièces jointes
Pour envoyer un e-mail avec des pièces jointes, vous devez trouver un fournisseur qui prend en charge cette fonctionnalité, mon fournisseur de grille d'envoi ne prend pas en charge cela et GMX le fournisseur que j'ai utilisé pour le test ne prend plus en charge.
Mais si vous trouvez un nouveau fournisseur, vous pouvez utiliser ce code pour joindre les fichiers.
EMailSender::FileDescriptior fileDescriptor[1]; fileDescriptor[0].filename = F("test.txt"); fileDescriptor[0].url = F("/test.txt"); fileDescriptor[0].mime = MIME_TEXT_PLAIN; fileDescriptor[0].encode64 = false; fileDescriptor[0].storageType = EMailSender::EMAIL_STORAGE_TYPE_SD;
EMailSender::Attachments attachs = {1, fileDescriptor};
EMailSender::Response resp = emailSend.send("[email protected]", message, pièces jointes);
Étape 5: Le résultat
Voici l'email envoyé avec un fournisseur esp8266 et GMail (pour utiliser GMail vous devez enambe un programme externe).
Étape 6: Bibliothèque
Vous pouvez trouver la bibliothèque sur GitHub
Et vous devez demander des fonctionnalités ou signaler des bugs sur le forum
Documentation supplémentaire ici.