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.
Lesezeichen