email versenden

Hallo

ich möchte gerne mit meinem Arduino Uno und Ethernet Shield bei einem auftretendem Event eine Email verenden.
Mit einem SMTP Explorer habe ich das ganze Szenario positiv durchspielen können. Für den Arduino nehme ich dazu das Bsp. von aus Tutorial.
Der Sketch läuft durch und meldet am Schluss disconnect, sodaß die Verbindung aufgebaut wurde und wieder geschlossen wird.
Da aber keine Mail gesendet wird, möchte ich gern sämtliche Rückmeldungen vom Mailserver (also 220 oder 550) die man sonst in einer Telnet Session bekommt auf dem Serial Monitor bekommen. Ich weiß aber nicht wie ich die Zwischenmeldungen angezeigt bekomme.
Wahrscheinlich sind es Returncodes, aber welche?

Was ich auch nicht verstehe sind die Befehle zum Auth Login ( wie ist hier die genaue Syntax)?

Könnte mir hier bitte mal einer Klarheit reinbringen, danke

Peter

Poste doch mal den Sketch der die Mail verschicken soll. Dabei aber Zugangsdaten und Passwörter durch "xxxxxx" ersetzen :slight_smile:

ich möchte gerne mit meinem Arduino Uno und Ethernet Shield ...

Ein Vorhaben mit Problemen.

Ich halte es für quasi unmöglich.
Denn es gibt keine öffentlichen SMTP Server mehr, welche auf SSL/TLS verzichten.
Und das ist auch gut so.

Leider kann deine Kombination das nicht leisten.
(soweit mir bekannt)

Vermutung:
Wenn du es geschafft hast die Meldungen zu zeigen, wirst du den Code 530 sehen.

Nimm den PushingBox dienst.
Klappt bei mir einwandfrei!

#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.
     delay (1000);
 } else {

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

 }

 Serial.println("connected");
 client.println(F("HELO HalloServer"));
    delay (1000);
 client.println(F("MAIL FROM:meine@smart-mail.de"));
    delay (1000);
 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 (){
 }

combie:
Ich halte es für quasi unmöglich.
Denn es gibt keine öffentlichen SMTP Server mehr, welche auf SSL/TLS verzichten.

mit Telnet schaffe ich es bei smart-mail.de zumindest ohne Bneutzerkennung

Ich würde mal zwischen allen Ausgaben wenigstens 500ms Delay machen. Vor allem nach dem "RCPT TO" und vor dem "DATA".
Ansonsten kannst Du Dir auch eine Funktion bauen, die solange aus der Verbindung liest und auf der seriellen Konsole ausgiebt, bis ein Zeilenumbruch '\n' gefunden wird. Dann siehst Du auch die Ausgaben die der Server macht.

danke euch, hat sich erledigt.
Ich habe eine Raspi eingesetzt und was soll ich sagen, nach 2 Std. war das Thema durch.
Ich bin jetzt auch Fan von Raspi

gruss