Pages: [1] 2 3   Go Down
Author Topic: eMail mit Arduino senden  (Read 4897 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo zusammen,

ich habe da mal wieder ein Problem mit dem ich mich schon ein zwei Tage durcharbeite, aber irgendwie nicht vorrankomme.

Und zwar würde ich gerne eine eMail mit meinem Arduino Mega + Ethernet Shield verschicken.
Ich verwende dazu folgenden Sketch. An sich habe ich den so im Internet fertig gefunden, ich habe noch die Sache mit "auth login" hinzugefügt, weil ohne eine Anmeldung würde das glaube ich nicht mehr gehen (habe es auch ausprobiert, funtkioniert nicht):

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

byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x44, 0x70 };
byte ip[] = { 192, 168, 2, 109 };
byte server[] = { 205, 188, 186, 137 }; // IP von smtp.aol.com

EthernetClient client;

void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
 
  delay(1000);
 
  Serial.println("connecting...");
 
  if (client.connect(server, 25)) {
    Serial.println("connected");
    client.println("HELO test");
    client.println("auth login");
    client.println("Meine eMail in BASE64");
   client.println("Mein Passwort in BASE64");
   client.println("MAIL FROM: meineemail@aol.de");
   client.println("RCPT TO: meineemail@aol.de"); //wollte einfach eine email an mich selber senden
   client.println("DATA");
   client.println("SUBJECT: Arduino sendet Email");
   client.println();
   client.println("Erster Test.");
   client.println(".");
   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(;;)
    ;
  }
}

Und das bekomme ich im Serial Monitor:
connecting...
connected
220-mtaout-da01.r1000.mx.aol.com ESMTP MUA/Third Party Client Interface
220-AOL and its affiliated companies do not
220-authorize the use of its proprietary computers and computer
220-networks to accept, transmit, or distribute unsolicited bulk
220-e-mail sent from the internet.
220-Effective immediately:
220-AOL may no longer accept connections from IP addresses
220 which no reverse-DNS (PTR record) assigned.
250 mtaout-da01.r1000.mx.aol.com
334 VXNlcm5hbWU6
334 UGFzc3dvcmQ6
235 2.7.0 Authentication successful
250 2.1.0 Ok
250 2.1.5 Ok
503 5.5.0 <DATA>: Data command rejected: Improper use of SMTP command pipelining
221 2.7.0 Error: I can break rules, too. Goodbye.

disconnecting.


So wie man auch sieht, funktioniert leider bisher "nur" die Identifiezierung mit Email und passwort bis hin kurz vor dem endgültigen Absenden.

Die Anleitung mit auth login habe ich hierher: http://www.kongtechnology.com/2008/01/27/smtp-authentication-and-send-emails-using-telnet/
Ich habe dann auch mal versucht über die Konsole (cmd, windows) eine telnet Verbindung mit smtp.aol.com herzustellen.
Funktionierte auch alles eigentlich, nur wenn ich dann am Schluss den "." ein tippe und enter drücke kommt immer:
Quote
521 AOL will not accept delivery of this message

Leider bin ich nicht so schlau und kann da sofort was rausschließen.

Also entweder mache ich grundsätzlich etwas falsch oder ich habe irgendetwas übersehen !?
Muss ich mir da eine andere Lösung suchen, wenn ja, welche ?

Hoffe ich habe alles relativ gut beschrieben, die Zeit ist zur Zeit leider etwas zu knapp um alles ausführlichst zu beschreiben.
Denke aber so grob sollte das reichen !

Vielen Dank schonmal !

Grüße
Lorenz
Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 589
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich empfehle, per Telnet den grundsätzlich möglichen Erfolg zunächst zu testen.
ich hab mir den Wolf debugged .....

Wenn Telnet geht dann weisst Du auch woran dein sketch scheitert.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja ok, da hast du wirklich Recht !

Muss mir dann wohl noch ein passendes Forum suchen...
melde mich dann, wenn ich das Problem behoben habe !

Grüße
Lorenz

Logged

Offline Offline
God Member
*****
Karma: 12
Posts: 589
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dazu braucht's kein Forum, der grundsätzliche Weg dürfte ja klar sein. Bei mir war's der Auth String, da bin ich immer drüberstolpert.
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Joa habe ich auch gerade gedacht, aber da ich schon mehrere Anleitungen durchprobiert habe und immer der gleich Fehler kommt, wäre da ein Forum schon ganz hilfreich. Muss aber mal sehen ob das nicht auch irgendwie alleine auf die Beine gestellt bekomme !
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 263
Posts: 21587
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Normalerweise werden Emails ohne Autentifizierung versendet und zwar an den Emaildienst Deines Providers. Wie machst Du es in Deinem Email-Programm?
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 2
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

Lass mich raten, alle deine Versuche gingen an AOL?

Die Antwort des Servers sagt doch wenn ich richtig rate (in IT-Englisch smiley-evil ), dass AOL unter umständen keine Mails von - nennen wir es mal - Privatrechnern (ohne reverse DNS) entgegennimmt. Zugegeben, der Bulk-Teil ist mir nicht klar ... Bulk Mails = massenmails. Vielleicht hätte es ja beim allerersten versuch geklappt, aber du hast es zu oft versucht und AOL hat die Verbindungen gezählt.

Daher werden dich keine Tutorials weiter bringen, solange du an AOL hängst.

Vorschlag: Neue IP besorgen oder ne Nacht schlafen und es morgen nochmal versuchen.
Logged

Offline Offline
God Member
*****
Karma: 10
Posts: 721
42
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich find ja die Reject-Message genial: "I can break rules too. Goobye." - hört sich ein bisschen eingeschnappt ein  smiley-mr-green

Fakt ist, dass wenn dein du keine Reverse-DNS-Auflösung hast, werden deine E-Mails von vielen E-Mail-Servern abgeleht. Reverse-DNS bedeutet, dass der Server, der die E-Mail sendet auch mit dem Namen des Senders aufgelöst werden muss. Konkret heißt das: wenn die Mail von test@example.com kommt, muss die IP des Senders ebenfalls auf example.com zeigen.

Du brauchst also auf jedenfall einen E-Mail-Server, der dir deine Mail verschickt inklusive eines Accounts.

Ich probier mal kurz ein bisschen herum
Logged


Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Normalerweise werden Emails ohne Autentifizierung versendet und zwar an den Emaildienst Deines Providers. Wie machst Du es in Deinem Email-Programm?
Grüße Uwe

Das sehe ich genau so ! Aber irgendwie funtkioniert das bei mir nicht so ganz, ob ich das jetzt mit oder ohne authentifizierung mache, ändert leider nichts. Beides bringt keinen wirklichen Erfolg.
Meinst du mit email programm z.B. outlook ?!
Lass mich raten, alle deine Versuche gingen an AOL?

Jap ich habe es mit aol probiert, da es mit anderen wie windows live und t-online absolut nicht klappte.

Quote
Die Antwort des Servers sagt doch wenn ich richtig rate (in IT-Englisch smiley-evil ), dass AOL unter umständen keine Mails von - nennen wir es mal - Privatrechnern (ohne reverse DNS) entgegennimmt. Zugegeben, der Bulk-Teil ist mir nicht klar ... Bulk Mails = massenmails. Vielleicht hätte es ja beim allerersten versuch geklappt, aber du hast es zu oft versucht und AOL hat die Verbindungen gezählt.

Vorschlag: Neue IP besorgen oder ne Nacht schlafen und es morgen nochmal versuchen.

Das habe ich vorhin auch schon entdeckt, konnte aber nicht alles so genau verstehen was die damit so meinen.
Ich kann ja morgen nochmal versuchen, mal sehen ob das so das Problem war  smiley-mr-green
Hoffe nicht, sonst könnte ich ja gar nicht sooo viele mails senden -_-

Ich find ja die Reject-Message genial: "I can break rules too. Goobye." - hört sich ein bisschen eingeschnappt ein  smiley-mr-green

Jap das fand ich auch etwas lächerlich smiley-grin

Quote
Fakt ist, dass wenn dein du keine Reverse-DNS-Auflösung hast, werden deine E-Mails von vielen E-Mail-Servern abgeleht. Reverse-DNS bedeutet, dass der Server, der die E-Mail sendet auch mit dem Namen des Senders aufgelöst werden muss. Konkret heißt das: wenn die Mail von test@example.com kommt, muss die IP des Senders ebenfalls auf example.com zeigen.

Du brauchst also auf jedenfall einen E-Mail-Server, der dir deine Mail verschickt inklusive eines Accounts.

Ich probier mal kurz ein bisschen herum

okaaay, da verstehe ich jetzt gerade nicht soo viel von. Also wenn ich eine email an test@aol.de senden möchte muss ich auch den Server smtp.aol.com verwenden. Das ist mir auch soweit klar...wenn es das ist was du meinst.

Viel Spaß beim probieren, mal sehen was dabei rauskommt smiley-wink

Vielen Dank für die Antworten!
Grüße
Lorenz
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 263
Posts: 21587
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ja zB Outlook, Outlook Express oder Thunderbird.
Du mußt die Emails an DEINEN Provider senden nicht an einen x-beliebigen; nur dieser nimmt die Emails an.
Grüße Uwe
Logged

Germany
Offline Offline
Sr. Member
****
Karma: 2
Posts: 285
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also ist es richtig wenn ich z.B. Von meiner email test@aol.de eine email an test123@aol.de ?
Wenn ja, warum geht es nicht, wenn ich eine email an mich selber sende ?!

EDIT: Habe es mal ohne Autentification über Konsole nochmal probiert und siehe da, es kommt folgendes:
Quote
rcpt to: test@aol.de
553 5.7.1 <test@aol.de>: Sender address rejected: not logged in

Von daher gehe ich mal davon aus, dass man eine anmeldung benötigt ?!

Grüße
Lorenz
« Last Edit: March 03, 2013, 03:00:39 pm by lgrube96 » Logged

Offline Offline
Jr. Member
**
Karma: 0
Posts: 54
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Einen (absichtlich) offenen SMTP-Server wirst du nicht finden, da wär in kürzester Zeit die Hölle los. Allgemein werden entweder POP-before-SMTP verwendet (weil man für den Zugriff aufs Postfach ebenfalls Username und Passwort braucht) oder SMTP-Auth. DIe Details stehen hier: http://de.wikipedia.org/wiki/SMTP-Auth
Logged

Germany S-H
Offline Offline
Faraday Member
**
Karma: 146
Posts: 3030
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Joa habe ich auch gerade gedacht, aber da ich schon mehrere Anleitungen durchprobiert habe und immer der gleich Fehler kommt, wäre da ein Forum schon ganz hilfreich.

Du brauchst ein Forum, um die Fehlermeldung zu googlen?

Na ja, wenn es weiter nichts ist, dem Manne kann geholfen werden, per Link in einem Forum:
http://lmgtfy.com/?q=Improper+use+of+SMTP+command+pipelining

Kommst Du dann drauf, was Dein Programm gemeinsam hat mit Spam-Mail-Programmen?
Logged

northern germany
Offline Offline
Jr. Member
**
Karma: 2
Posts: 94
Ausbildung: Funkmechaniker, Systemadministrator
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Normalerweise werden Emails ohne Autentifizierung versendet und zwar an den Emaildienst Deines Providers. Wie machst Du es in Deinem Email-Programm?
Grüße Uwe
Ich widerspreche Uwe wirklich nicht gern, aber diese Aussage stimmt ausschließlich für Server-Server Kommunikation.
Dein Mailprogramm macht es mit Authentication, sonst wird der Mailserver zum offenen Relay, weil jeder an jeden senden könnte.

Wie eben schon geschrieben benötigst du entweder SMTP-Auth, was du versucht hast, oder POP/IMAP-Auth.

Und wie auch eben schon geschrieben, der Grund für die Ablehnung ist ganz klar
Code:
503 5.5.0 <DATA>: Data command rejected: Improper use of SMTP command pipelining


Logged

using arduino leonardo
--
tomorrow today will only be yesterday, so live your life today!

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also entweder mache ich grundsätzlich etwas falsch oder ich habe irgendetwas übersehen !?
Muss ich mir da eine andere Lösung suchen, wenn ja, welche ?

Ich vermute, dass Du zu schnell bist. Normalerweise sollte man nach jedem SMTP Kommando die Antwort des SMTP Servers abwarten, bevor man weitere Kommandis sendet.
Der Server muss ja auch die Benutzernamen/Kennwörter überprüfen. Dazu werden die Anmeldedaten an einen weiteren Server gesendet. Das benötigt seine Zeit.
Viele Server machen obendrein noch Tarpitting. Hierbei werden die Antworten des Servers künstlich verzögert. Dies gibt dem Server die Möglichkeit SPAM Bots zu erkennen oder zumindest auszubremsen. Bei einzelnen Mails spielt Tarpitting keine Rolle, ob die Transaktion jetzt 10ms oder 3000ms dauert, ein Spammer lässt sich so aber gehörig ausbremsen. smiley-mr-green
Du solltest also versuchen die Serverresponse auszuwerten, oder zumindest genügend Wartezeit einbauen.


Logged

Pages: [1] 2 3   Go Up
Jump to: