Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Hier möchte ich die Version 2 meiner Bibliothek EMailSender erklären, eine große Entwicklung gegenüber Version 1, mit Unterstützung für Arduino mit w5100, w5200 und w5500 Ethernet-Shield- und enc28J60-Clone-Geräten und Unterstützung für esp32 und esp8266.
Jetzt können Sie auch Anhänge hinzufügen, die von einem Speichergerät wie SD oder SPIFFS geladen wurden. Hier Arduino Ethernet-Nutzung.
Lieferungen
- Arduino Mega
- enc28J60
- SD-Karte
Schritt 1: Wählen Sie das richtige Gerät der ENC28J60- oder W5100-Serie
Arduino verwaltet normalerweise das Netzwerk mit einem externen Gerät, das Standardgerät wie der w5100 verwendet eine Ethernet-Bibliothek, die Klone ENC28J60 haben einige Bibliotheken zur Auswahl.
Um Ihr Gerät auszuwählen, müssen Sie auf die Bibliotheksdatei EMailSenderKey.h gehen und die richtige einstellen
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_ENC28J60 // Standard
Die zur Verwaltung dieses Gerätetyps geladene Bibliothek ist UIPEthernet. Sie finden die Bibliothek im Bibliotheksmanager der Arduino IDE
oder Sie können den Standardnetzwerktyp ändern
#define DEFAULT_EMAIL_NETWORK_TYPE_ARDUINO NETWORK_W5100
Dies ist die Standardimplementierung und Ethernet-Bibliothek.
Ein wichtiger Gedanke ist, dass dieser Ethernet-Shield kein SSL oder TLS unterstützt. Sie müssen also einen SMTP-Anbieter finden, der eine SMTP-Verbindung ohne diese Art von Verschlüsselung anbietet.
Ich erstelle ein Thema im Forum, in dem Sie den von Ihnen verwendeten Anbieter hinzufügen können, den Sie auch bei mir finden.
Schritt 2: Einfache E-Mail senden
Um eine E-Mail mit Arduino zu senden, müssen Sie einen Anbieter finden, der ohne SSL oder TLS funktioniert. Für meine Lösung verwende ich den SendGrid-Anbieter.
Ich denke, die Verwendung ist sehr, sehr einfach.
Sie müssen also den Anbieter einstellen
EMailSender emailSend("IHR-SENDGRID-API-KEY", "IHR-SENDGRID-PASSWD", "FROM-EMAIL", "smtp.sendgrid.net", 25);
Dann müssen Sie eine Nachricht erstellen und senden
EMailSender::EMailMessage-Nachricht; message.subject = "Soggetto"; message.message = "Ciao komm staiio bene.
EMailSender::Response resp = emailSend.send("[email protected]", Nachricht);
Serial.println("Sendestatus:");
Serial.println (bzw. Status);
Serial.println (bzw. Code); Serial.println (bzw. desc);
Schritt 3: Verbinden Sie einen SD-Wagen, um Anhänge zu verwalten
Um Anhänge zu senden, müssen Sie eine SD-Karte wie im Schema verwenden, wenn Sie mehr Informationen zur Verbindung benötigen, lesen Sie diesen Artikel "So verwenden Sie die SD-Karte mit esp8266, esp32 und Arduino".
Schritt 4: E-Mail mit Anhängen senden
Um E-Mails mit Anhängen zu senden, müssen Sie einen Provider finden, der diese Funktionalität unterstützt, mein Sendgrid-Provider unterstützt das nicht und GMX, der Provider, den ich für den Test verwendet habe, unterstützt nicht mehr.
Wenn Sie jedoch einen neuen Anbieter finden, können Sie diesen Code verwenden, um die Dateien anzuhängen.
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]", Nachricht, Anhänge);
Schritt 5: Das Ergebnis
Hier die E-Mail, die mit einem esp8266- und GMail-Anbieter gesendet wurde (um GMail zu verwenden, müssen Sie ein externes Programm benennen).
Schritt 6: Bibliothek
Sie finden die Bibliothek auf GitHub
Und Sie müssen im Forum nach Funktionen fragen oder Fehler melden
Zusätzliche Dokumentation hier.