- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 5 von 5

Thema: eMAIL mit Arduino versenden

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2015
    Beiträge
    7

    eMAIL mit Arduino versenden

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo zusammen,
    ich habe das Problem, dass ich keine emails mit dem Arduino versenden kann. Das Programm läuft bis zur Meldung
    "Serial.println(F("..OK")); " und
    "Serial.println("connected"); "

    Die Verbindung zum smtp Server von smtp.smart-mail.de sollte also stehen, aber eine Mail wird leider nicht verschickt.


    #include <SPI.h>
    #include <Ethernet.h>

    byte mac[] = {
    0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 };
    IPAddress ip( 192, 168, 178, 70 );
    IPAddress gateway( 192, 168, 10, 1 );
    IPAddress subnet( 255, 255, 255, 0 );
    byte server[] = { 217, 69, 254, 100 }; // IP Mailserver

    EthernetClient client;
    void setup()
    {
    Ethernet.begin(mac, ip);
    Serial.begin(9600);
    delay(1000);
    if( Ethernet.begin( mac) == 0)
    {
    Serial.println("Failed to configure Ethernet using DHCP.");
    // no point in carrying on, so do nothing forevermore:
    while(1);
    }
    // print your local IP address.
    Serial.println(F( "Ethernet started."));
    Serial.print(F( "Local IP = "));
    Serial.println(Ethernet.localIP());

    if(client.connect(server,25)) {
    Serial.println(F("..OK")); // bis hier funktioniert alles prima, die Verbindung zum Server sollte also stehen.
    } else {

    Serial.println(F("connection failed"));

    }

    Serial.println("connected");
    client.println(F("HELO HalloServer"));
    client.println(F("MAIL FROM:meine@smart-mail.de"));
    client.println(F("RCPT TO:meine@smart-mail.de"));
    client.println(F("DATA"));
    // Empfänger-Adresse
    client.println(F("TO: meine@smart-mail.de"));
    // Titel des Mails
    client.println(F("SUBJECT: Arduino sendet Email"));
    client.println();
    // Inhaltstext des Mails
    client.println(F("Hallo mein Freund."));
    // Kennzeichnung Ende des Emails
    client.println(F("."));
    // Abmelden
    client.println(F("QUIT"));

    if (client.available()) {
    char c = client.read();
    Serial.print(c);
    }

    if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    }

    }

    void loop (){
    }

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2015
    Beiträge
    7
    Ups, nach so viel Hilfe hab ich mir dann selber geholfen.

    Und so funktioniert es

    /*
    Der Sketch dient zum Verschicken einer E-Mail mit dem Arduino UNO R3
    Hier ein E-Mail Account bei smart-mail.de

    Die IP des Mail-Servers bekommt man wie folgt:
    Unter Windows den Befehl "CMD" eingeben, dann erscheint das DOS Fenster, nun "ping smtp@smart-mail.de "eingeben, die IP wird dann angezeigt.
    Diese Vorgehensweise ist auch für alle anderen E-Mail Server so gültig.

    Alle u.a. Befehle zur Kommunikation mit dem Sever können mit dem Freeware Programm "SMTP Explorer" http://faq.netzprisma.de/data/smtpexplorer.zip überprüft werden. Das Programm ist sehr hilfreich.

    Die Umwandlung von Benutzername und Passwort iin BASE 64 gelingt einfach unter http://base64-encoder-online.waraxe.us

    Sehr wichtig sind die delay(x) Zeiten um die Kommunikation zum Server sicher zu stellen !!!
    */

    #include <Ethernet.h>
    #include <SPI.h>

    byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 }; // durch eigene mac ersetzen
    byte ip[] = { x, xx, xx, xx }; //durch eigene IP ersetzen
    byte server[] = { 217, 69, 254, 100 }; // Mail server IP, //von smtp@smart-mail.de, ev. durch eigenen Server ersetzen


    EthernetClient client;
    int x = 5000; // sichert die Kommunikation zum Server ab

    void setup()
    {
    Ethernet.begin(mac, ip);

    Serial.begin(9600);
    Serial.println("connecting...");
    delay(x);
    if (client.connect(server, 25)) {
    Serial.println("connected, Server will respond, please wait");
    delay(x);
    client.println("EHLO Arduino"); //EHLO muß so geschrieben sein, Arduino = beliebiger Name
    delay(x);

    //LOG IN************************************************ ************************************************** ************

    client.println("AUTH LOGIN"); //Benutzername und Passwort müssen im BASE64 Format vorliegen. Unter "http://base64-encoder-online.waraxe.us/" einfach zu finden.
    delay(x);
    client.println("xxxxxxxxxxxx"); // das ist der Benutzername, die " " müssen bleiben, xxxx bitte durch deinen BASE 64 code ersetzen
    delay(x);
    client.println("xxxxxxxxxxx"); // das ist das Passwort, die " " müssen bleiben, xxxx bitte durch deinen BASE 64 code ersetzen
    delay(x);
    //MAIL Versand******************************************* **************************************************
    client.println("MAIL FROM: xxxxxxx@smart-mail.de"); //xxxx bitte durch deine E-Mail ersetzen
    delay(x);
    client.println("RCPT TO: xxxxxxx@smart-mail.de");
    delay(x);
    client.println("DATA");
    delay(x);
    client.println("From: xxxxxx@smart-mail.de");
    delay(x);
    client.println("To: xxxxxx@smart-mail.de");
    delay(x);
    client.println("SUBJECT: Test");
    delay(x);
    client.println();
    delay(x);
    client.println("Erster test mit arduino.");
    delay(x);
    client.println(".");
    delay(x);
    client.println("QUIT");
    }
    else {
    Serial.println("connection failed");
    }
    }

    void loop()
    {
    if (client.available()) {
    char c = client.read();
    Serial.print(c);
    }

    if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();
    for(; ;
    }
    }

    Nach dem Mailversand erhält man dann die Meldung:

    connecting...
    connected, Server will respond, please wait
    220 mail.smart-mail.de Smart-Mail SMTP service ready
    250-mail.smart-mail.de Pleased to meet you, ip5b43d6c1.dynamic.kabel-deutschland.de [91.67.214.193]
    250-SIZE 78643200
    250-AUTH PLAIN LOGIN
    250-AUTH=PLAIN LOGIN
    250-STARTTLS
    250 8BITMIME
    334 xxxxxxx (die xxxx sind nur Platzhalter für meine Login Daten )
    334 xxxx
    235 Authentication successful
    250 2.1.0 Return path OK
    250 2.1.5 Recipient OK
    354 Send data (max 78643200 bytes), end with \r\n.\r\n
    250 2.0.0 Message enqueued for delivery
    221 mail.smart-mail.de Closing connection

    disconnecting.
    Geändert von Tigris (08.03.2015 um 08:37 Uhr)

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Danke für deine Ausführungen!

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    26.02.2015
    Beiträge
    7
    Mache ich doch gerne.
    Es kommt leider manchmal vor, dass die Verbindung nicht beim ersten Mal zustande kommt.
    Ich arbeite derzeit an einer verbesserten Version

  5. #5
    Unregistriert
    Gast

    ?

    Was macht die verbesserte Version?

Ähnliche Themen

  1. Benachrichtigungen per Email abstellen?
    Von HaWe im Forum Offtopic und Community Tratsch
    Antworten: 4
    Letzter Beitrag: 09.10.2014, 19:27
  2. mit Arduino Email senden
    Von Der Einsteiger im Forum Arduino -Plattform
    Antworten: 9
    Letzter Beitrag: 31.01.2014, 09:41
  3. Chemische Datenübertragung: SMS mit Alkoholwolken versenden
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 3
    Letzter Beitrag: 22.12.2013, 22:09
  4. [ERLEDIGT] Python Email versand
    Von DanielSan im Forum Raspberry Pi
    Antworten: 17
    Letzter Beitrag: 23.11.2012, 15:27
  5. Nun auch EMail über Roboternetz senden
    Von Frank im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 3
    Letzter Beitrag: 18.11.2005, 11:22

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests