Table des matières:

Comment envoyer des e-mails avec pièces jointes avec Arduino, Esp32 et Esp8266 : 6 étapes
Comment envoyer des e-mails avec pièces jointes avec Arduino, Esp32 et Esp8266 : 6 étapes

Vidéo: Comment envoyer des e-mails avec pièces jointes avec Arduino, Esp32 et Esp8266 : 6 étapes

Vidéo: Comment envoyer des e-mails avec pièces jointes avec Arduino, Esp32 et Esp8266 : 6 étapes
Vidéo: #6 Notification GMAIL avec l'ESP32 2024, Novembre
Anonim
Comment envoyer des e-mails avec pièces jointes avec Arduino, Esp32 et Esp8266
Comment envoyer des e-mails avec pièces jointes avec Arduino, Esp32 et Esp8266

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

Sélectionnez le bon appareil ENC28J60 ou W5100 Series
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

Envoyer un e-mail simple
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

Connectez un panier SD pour gérer les pièces jointes
Connectez un panier 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

Le résultat
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.

Conseillé: