G-Mails per ESP8266 versenden

Hallo zusammen,

in einem vorhergehenden Beitrag habe ich gezeigt, wie ein ESP-Prozessor Ping-Pakete schicken und empfangen kann. Heute möchte ich zeigen, dass dies auch mit SMTP via GMail möglich ist. Bei meiner Recherche bin ich auf eine praktische Library aufmerksam geworden.

Benötigte Hardware:

  • NodeMCU mit ESP8266

 

Vorarbeiten:

  • Versionsprüfung der Boardefinitionen im Boardverwalter
  • G-Mail Konto anlegen
    • Dienste für "unsichere Apps" zulassen.

Ich würde allen unseren Lesern nahe legen für dieses Projekt ein eigenes Konto anzulegen um seine Accountsicherheit nicht zu gefährden.

Wie man ein Google Konto anlegt wird hier ausreichend beschrieben, um nicht näher darauf eingehen zu müssen:

Ist der Account erstellt und aktiviert können wir uns bei Google einloggen und die Einstellungen für das Konto öffnen, Sie finden diesen Punkt in der oberen rechten Ecke des Browsers. "G Suite -> Google Konto" Sie können die Seite auch über die Eingabe der URL aus dem Screenshot erreichen:

Navigieren Sie wie oben zu sehen zum Punkt "Sicherheit", dort haben Sie die Möglichkeit den Zugriff durch weniger sichere Apps zu erlauben, dieser Zugriff muss aktiviert werden:

 Als nächstes kümmern wir uns um die Boarddefinitionen in der Arduino-IDE

Wie man die ESP-Boards in Betrieb nimmt beschreiben wir ausführlich in unseren E-Books. Für dieses Projekt ist jedoch u. U. ein Downgrade der Boarddefinitionen auf 2.4.2 erforderlich. Dazu entfernen wir das Modul im Boardverwalter und intallieren es im Anschluss neu:

Danach stehen die Boards wieder wie gewohnt zur Verfügung.

Um mit verschiedenen Versionständen, der Definitionen und Librarys besser zurechtzukommen möchte ich dem etwas fortgeschrittenen Bastler an dieser Stelle PlatformIO nahe legen.

Die benötigte Library für den SMTP-Versand gibt es hier zum Download. Diese können wir als *.zip downloaden und in der Arduino-IDE unter Sketch -> Bibliothek einbinden -> .Zip-Bibliothek hinzufügen.

Der Anschließende Neustart der Arduino-IDE ist obligatorisch.

Nach dem erfolgreichen Import steht uns in der IDE unter: "Datei -> Beispiele -> Beispiele aus eigenen Bibliotheken -> ESP8266SMTP -> ESP8266SMTP_Gmail.ino" ein Beispiel zur Verfügung welches wir jedoch noch anpassen müssen.

Da der ESP eine WiFi Verbindung benötigt um eine E-Mail senden zu können passen wir zuerst im Header die SSID und das W-Lan-Passwort an.

Die nächsten notwendigen Anpassungen sind in der Void-Schleife zu finden:

 Tragen Sie im unteren Abschnitt ab SMTP.setEmail Ihre jeweiligen Daten ein. In den ersten beiden Zeilen den soeben erstellten Benutzeraccount und Ihr Passwort, unter .Subject den Betreff der zu sendenden E-Mail. Im Abschnitt .setFrom können Sie den Absender eintragen, welcher beim Empfang der Mail angezeigt werden soll (der echte Absender bleibt Ihr neuer Google-Mail-Account).

Im nächsten Abschnitt werden dann die Empfänger, sowie der Inhalt der E-Mail festgelegt:

Ich habe für mein Beispiel eine Mail an info@az-delivery.com schicken lassen, tragen Sie hier bitte EINE IHRER ADRESSEN ein. Haben Sie mehrere Empfänger können Sie diese, getrennt mit einem Komma, an der selben Stelle einfügen.

Der zweite Teil, hier "The European languages....." enthält die Nachricht der zu verschickenden Email und ist in der Vorlage mit einem Textgenerator erstellt worden. Hier das Ergebnis:

Zum besseren Verständnis habe ich den Block noch einmal geändert:

Den vollständigen Code stelle ich heute nicht für Copy&Paste zur Verfügung und bitte Sie, Ihr Wissen mit Bedacht zu nutzen.

Bis zum nächsten Beitrag ;)

 

 

Letzter Artikel Smarthome Zentrale mit ArduiTouch Teil 6 - WLAN Verbindung, Echtzeituhr und Webserver

Kommentar

jakob - November 12, 2019

ich habe das gleiche problem wie Erhardsson
“Error sending message: Could not connect to mail server”

komme leider nicht weiter. kann es sein, dass hier ein problem mit ssl ist?

andreas - November 7, 2019

Hallo
ich möchte anstatt eines Textes, wie hier in deinem Beispiel

if(SMTP.Send(“me8az-delivery.com” Die Lichtschranke an der Vorderseite …."
nicht den Text “Die Lichtschranke…” sondern eine Variable mit einen Wert versenden.
Da aber der SMTP.Send Befehl einen String verlangt, bekomme ich es einfach nicht hin,,,

Kann Du mir sagen wie das geht ?

Jonas - Mai 8, 2019

Hallo,
erstmal vielen Dank für den Beitrag. Habe es ausprobiert und es hat nach dem Downgrade der Version auch funktioniert. Ich benötige aber die atuellste Version (2.5.0), ich einen Webserver mit einbinden möchte, der aber bei der älteren Version nicht stabil läuft. Gibt es da eventuell noch eine Lösung, dass der E-Mailversand auch auf der aktuellen Version läuft?
Wäre super, wenn mir da jemand weiterhelfen könnte.
Gruß
Jonas

Erhardsson - April 23, 2019

Hallo,
ich bekomme immer die Meldung:

“Error sending message: Could not connect to mail server”

Benutzername und Password sind OK.

Was tun?

veit - März 7, 2019

sehr schön!

notifications an android handys schicken wäre auch fein ….

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe