Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Hier wil ik de versie 2 van mijn bibliotheek EMailSender uitleggen, een grote evolutie ten opzichte van versie 1, met ondersteuning voor Arduino met w5100, w5200 en w5500 ethernet shield en enc28J60 kloonapparaten, en ondersteuning voor esp32 en esp8266.
Nu kunt u ook bijlagen toevoegen, geladen vanaf een opslagapparaat zoals SD of SPIFFS. Hier Arduino ethernet gebruik.
Benodigdheden
- Arduino Mega
- enc28J60
- SD-kaart
Stap 1: Selecteer het juiste apparaat ENC28J60- of W5100-serie
Arduino beheert normaal gesproken het netwerk met een extern apparaat, het standaardapparaat zoals w5100 gebruikt Ethernet-bibliotheek, de klonen ENC28J60 hebben enkele bibliotheken om te selecteren.
Om uw apparaat te selecteren, moet u naar het EMailSenderKey.h-bibliotheekbestand gaan en de juiste instellen
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Standaard
De bibliotheek die is geladen om dit type apparaat te beheren is UIPEthernet, u kunt de bibliotheek vinden in bibliotheekbeheer van de Arduino IDE
of u kunt het standaard netwerktype wijzigen
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Dit is de standaard implementatie en gebruik Ethernet-bibliotheek.
Een belangrijke gedachte om te overwegen is dat dit Ethernet-schild geen SSL of TLS ondersteunt, dus u moet een SMTP-provider vinden die een SMTP-verbinding biedt zonder dit type codering.
Ik maak een onderwerp op het forum waar je de provider kunt toevoegen die je gebruikt, dat je de mijne ook kunt vinden.
Stap 2: Stuur een eenvoudige e-mail
Om een e-mail te versturen met Arduino moet je een provider zoeken die werkt zonder SSL of TLS, Voor mijn oplossing gebruik ik met de SendGrid provider.
Ik denk dat het gebruik heel erg eenvoudig is.
Dus je moet de provider instellen
EMailSender emailSend("UW-SENDGRID-API-KEY", "UW-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Dan moet je een bericht maken en het verzenden
EMailSender::EMailMessage-bericht; message.subject = "Soggetto"; message.message = "Ciao kom staiio bene.
EMailSender::Response resp = emailSend.send("[email protected]", bericht);
Serial.println("Verzendstatus: ");
Serial.println(resp.status);
Serial.println(resp.code); Serial.println(resp.desc);
Stap 3: Verbind een SD Cart om bijlagen te beheren
Om bijlagen te verzenden moet je een SD-kaart aansluiten zoals in het schema, als je meer informatie over de verbinding nodig hebt, raadpleeg dan dit artikel "Hoe SD-kaart te gebruiken met esp8266, esp32 en Arduino".
Stap 4: E-mail verzenden met bijlagen
Om e-mail met bijlagen te verzenden, moet je een provider vinden die die functionaliteit ondersteunt, mijn sendgrid-provider ondersteunt dat niet en GMX de provider die ik voor de test heb gebruikt, ondersteunt niet meer.
Maar als u een nieuwe provider vindt, kunt u deze code gebruiken om de bestanden bij te voegen.
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::Bijlagen hecht = {1, fileDescriptor};
EMailSender::Response resp = emailSend.send("[email protected]", bericht, bijlage);
Stap 5: Het resultaat
Hier de e-mail die is verzonden met een esp8266 en GMail-provider (om GMail te gebruiken moet u een extern programma gebruiken).
Stap 6: Bibliotheek
Je kunt de bibliotheek vinden op GitHub
En je moet functies vragen of bugs melden op Forum
Aanvullende documentatie hier.