Inhaltsverzeichnis:

So senden Sie E-Mails mit Anhängen mit Arduino, Esp32 und Esp8266 - Gunook
So senden Sie E-Mails mit Anhängen mit Arduino, Esp32 und Esp8266 - Gunook

Video: So senden Sie E-Mails mit Anhängen mit Arduino, Esp32 und Esp8266 - Gunook

Video: So senden Sie E-Mails mit Anhängen mit Arduino, Esp32 und Esp8266 - Gunook
Video: Webinar ESP32 and the IoT 2024, November
Anonim
So senden Sie E-Mails mit Anhängen mit Arduino, Esp32 und Esp8266
So senden Sie E-Mails mit Anhängen mit Arduino, Esp32 und Esp8266

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

Wählen Sie das richtige Gerät aus der ENC28J60- oder W5100-Serie
Wählen Sie das richtige Gerät aus 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

Einfache E-Mail senden
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

Verbinden Sie einen SD-Wagen, um Anhänge zu verwalten
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

Das Ergebnis
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.

Empfohlen: