Wie werden eigentlich E-Mails versendet



  • Zum Versenden von E-Mails reicht ein Protokoll (SMTP) und die Adresse wohin die Reise gehen soll. Kann man aus einem Programm auch selbst machen mit zu akzeptierenden Sicherheitshinweisen auf der eigenen und der Gefahr einer Spam-Filterung auf der anderen Seite.



  • Was muss ich dem Server jetzt sagen, damit er mir erlaubt eine Mail zu senden?



  • lolli schrieb:

    Was muss ich dem Server jetzt sagen, damit er mir erlaubt eine Mail zu senden?

    Du musst dich Authentifizieren:
    http://en.wikipedia.org/wiki/SMTP-AUTH#Details

    Einfacher ist, du suchst dir einen Open Relay Server zum testen 😉 zB indem du lokal bei dir einen Server aufsetzt.

    Sicher dass du dich mit dem Protokoll auf so einer low-level Ebene befassen willst? Denn Authentification ist händisch ziemlich umständlich zu machen weil idR keine Plaintext Passwörter verwendet werden. Und händisch verschlüsseln ist umständlich.

    PS:
    Mailserver verwenden zwischeneinander auch nur SMTP. Prinzipiell ist es so, dass man den eigenen Mailserver zum verschicken nicht brauchen würde. Man könnte sich wenn man zB von seiner Gmail adressen an eine GMX adresse schicken will direkt per SMTP mit GMX verbinden und dort die Mail direkt hinschicken.

    Der Grund warum das nicht (mehr) geht ist Spam. Wegen Spammails muss alles abgesichert werden und man muss deshalb seine Mails über einen mailserver relayen.



  • Ja, aber wie kann ich mich da denn authentifizieren? Welches Passwort soll ich schicken? Macht ja wenig Sinn, mich mit meinem Account einzuloggen.
    Wegen dem Open Relay Server: Aber der muss dann doch auch irgendwie mit GMX kommunizieren? Oder kann ich die Mail dann nur an den Server selbst schicken?



  • lolli schrieb:

    Ja, aber wie kann ich mich da denn authentifizieren? Welches Passwort soll ich schicken? Macht ja wenig Sinn, mich mit meinem Account einzuloggen.
    Wegen dem Open Relay Server: Aber der muss dann doch auch irgendwie mit GMX kommunizieren? Oder kann ich die Mail dann nur an den Server selbst schicken?

    Lies wikipedia.

    Wenn du einen GMX Account hast, hast du da Zugangsdaten. Wenn du keinen GMX Account hast, dann kannst du auch nicht über GMX mails verschicken... Welche Daten hast du denn bei deinem Mail Client eingetragen?



  • Hier liegt das Missverständnis. Ich habe einen GMX Account, ja. Aber ich möchte keine E-Mail von diesem Account aus schicken, sondern ich möchte eine E-Mail an diesen Account schicken. Und es macht ja irgendwie wenig Sinn, wenn ich mich dafür einloggen muss? 😕



  • Das Ziel (Empfänger) ist klar, nur die Quelle (Sender) nicht. Der Hinweis auf die Spam-Filterung wurde dir gegeben.


  • Mod

    lolli schrieb:

    Hier liegt das Missverständnis. Ich habe einen GMX Account, ja. Aber ich möchte keine E-Mail von diesem Account aus schicken, sondern ich möchte eine E-Mail an diesen Account schicken. Und es macht ja irgendwie wenig Sinn, wenn ich mich dafür einloggen muss? 😕

    Doch! Sonst könnte ja jeder Hansel kommen und beliebig Emails für dich bei GMX hinterlegen. Wie dir schon oft gesagt wurde und wie das Bildchen auf Wikipedia so schön zeigt, reden Emailserver untereindander auch nur über SMTP. Du musst halt einen Emailserver finden, der dir vertraut. Oftmals vertraut z.B. der Emailserver eines ISP erst einmal allen seinen Clients (sofern die keinen Mist machen). Das heißt, wenn du zuhause einen Emailserver aufsetzt und den Mailserver des ISP als ersten Ansprechpartner angibst, dann kannst du von zuhause aus deinen Server per SMTP ansprechen (zu dem du ja Zugang haben solltest), der fragt dann den Mailserver des ISP, der schickt die Mail dann noch weiter, usw. bis die Mail angekommen ist.

    Oder du hast schon einen Server im Internet, zu dem du Zugang hast. Dann kannst du auch direkt bei diesem anfangen. Du kannst dich ja mal über die Konsole bei gmx authentifizieren und dir selber eine Email schreiben. Der GMX-Server wird dann ohne Zwischenstation (sofern er nicht ganz doof ist 😃 ) die Email in deinen Posteingang legen.



  • lolli schrieb:

    Hier liegt das Missverständnis. Ich habe einen GMX Account, ja. Aber ich möchte keine E-Mail von diesem Account aus schicken, sondern ich möchte eine E-Mail an diesen Account schicken. Und es macht ja irgendwie wenig Sinn, wenn ich mich dafür einloggen muss? 😕

    bei gmx musst du dich auch authentifizieren, wenn du mails ueber deren mailserver verschicken willst - auch an deine adresse. welchen mailserver zum versenden verwendest du, vielleicht liegt hier das missvertaendniss? deshalb der hinweis zu open relay servern.

    edit: oder lies einfach was SeppJ geschrieben hat...



  • SeppJ schrieb:

    Doch! Sonst könnte ja jeder Hansel kommen und beliebig Emails für dich bei GMX hinterlegen.

    Ich dachte bisher, das wäre der Sinn von E-Mails. Dass jeder mir eine Nachricht schicken kann. 😕
    Soll das jetzt heißen, GMX hat eine Whitelist und nimmt nur E-Mails von Servern an die da drauf stehen? Kann ich nicht so wirklich glauben, dann könnten kleine E-Mail-Server ja gar nichts an GMX Adressen schicken..

    Um das noch mal klar zu stellen: Ich will einfach nur wissen, wie ich eine Mail an eine GMX Adresse schicken kann. Ob die dann im Spamfilter oder sonst wo landet ist mir erst mal egal, ich will nur das System verstehen. Ihr sagt mir immer ich soll einen anderen Mailserver nutzen, aber was bringt mir das? Ich will keinen anderen Mailserver nutzen, der muss dann doch auch irgendwie mit GMX kommunizieren, und ich will wissen wie genau das abläuft.


  • Mod

    lolli schrieb:

    SeppJ schrieb:

    Doch! Sonst könnte ja jeder Hansel kommen und beliebig Emails für dich bei GMX hinterlegen.

    Ich dachte bisher, das wäre der Sinn von E-Mails. Dass jeder mir eine Nachricht schicken kann. 😕
    Soll das jetzt heißen, GMX hat eine Whitelist und nimmt nur E-Mails von Servern an die da drauf stehen? Kann ich nicht so wirklich glauben, dann könnten kleine E-Mail-Server ja gar nichts an GMX Adressen schicken..

    Um das noch mal klar zu stellen: Ich will einfach nur wissen, wie ich eine Mail an eine GMX Adresse schicken kann. Ob die dann im Spamfilter oder sonst wo landet ist mir erst mal egal, ich will nur das System verstehen. Ihr sagt mir immer ich soll einen anderen Mailserver nutzen, aber was bringt mir das? Ich will keinen anderen Mailserver nutzen, der muss dann doch auch irgendwie mit GMX kommunizieren, und ich will wissen wie genau das abläuft.

    Dann muss GMX dir vertrauen. Das geht zum Beispiel, indem du deine Zugangsdaten benutzt, da du schon einen GMX Account hast. Wenn du keinen GMX-Account hast, dann musst du dir einen anderen Mailserver suchen, der einen anderen Mailserver kennt, der einen anderen Mailserver kennt, ... ,der einen Mailserver kennt, dem GMX erlaubt, dass er ihm Emails schickt.

    Im Prinzip ist es in der Praxis so wie du es dir mit der Whitelist denkst. Wobei es mWn derzeit noch (das wird immer restriktiver) eher eine Blacklist ist. Spam ruiniert die Welt 😞 .

    Und lies Wikipedia. Die Englische:
    Überblick: http://en.wikipedia.org/wiki/Email#Operation_overview
    Senden: http://en.wikipedia.org/wiki/Mail_submission_agent
    Weiterleiten: http://en.wikipedia.org/wiki/Mail_transfer_agent
    Empfangen: http://en.wikipedia.org/wiki/Message_delivery_agent



  • SeppJ schrieb:

    Im Prinzip ist es in der Praxis so wie du es dir mit der Whitelist denkst. Wobei es mWn derzeit noch (das wird immer restriktiver) eher eine Blacklist ist. Spam ruiniert die Welt 😞 .

    😮 Ok, damit hatte ich tatsächlich nicht gerechnet. Komisches System, aber Danke.



  • gmx verwendet seit einiger Zeit auch SPF, damit werden Mails mit gmx-Adressen als Absender nicht mehr so einfach überall akzeptiert, wenn sie nicht von einem der zulässigen gmx-Server stammen.



  • lolli schrieb:

    Ich will keinen anderen Mailserver nutzen, der muss dann doch auch irgendwie mit GMX kommunizieren, und ich will wissen wie genau das abläuft.

    Genauso wie wenn du mit dem Mailserver sprichst.

    Nur dass du dich heutzutage eben auch noch mit SPF und DKIM uä. herumschlagen musst. Und auch frueher schon musste meistens der Reverse-DNS-Eintrag des absendenden Servers passen und und und.

    Und ganz wichtig: mail.gmx.net ist der Ausgangsserver fuer GMX-Kunden. Wohin die Mails an GMX-Adressen geroutet werden sollen, wird anhand des MX-Eintrags festgelegt:

    ~ % dig +short mail.gmx.net
    213.165.64.20
    213.165.64.21
    ~ % dig +short mx gmx.net
    10 mx0.gmx.net.
    10 mx1.gmx.net.
    ~ % dig +short mx0.gmx.net
    213.165.64.100
    ~ % dig +short mx1.gmx.net
    213.165.64.102
    

    Mail-Eingang via SMTP von außen geht also an andere Hosts als ausgehende Mails von GMX-Kunden. Macht durchaus Sinn.

    Dorthin verbinden, dann klappts auch mit deinem Telnet:

    ~ % telnet mx0.gmx.net 25
    Trying 213.165.64.100...
    Connected to 213.165.64.100.
    Escape character is '^]'.
    220 mx0.gmx.net GMX Mailservices ESMTP {mx055}
    HELO c-plusplus.net
    250 mx0.gmx.net GMX Mailservices {mx055}
    MAIL FROM: <nman@c-plusplus.net>
    250 2.1.0 ok {mx055}
    […]
    


  • Hier die ganze Session:

    ~ % telnet mx0.gmx.net 25
    Trying 213.165.64.100...
    Connected to mx0.gmx.net.
    Escape character is '^]'.
    220 mx0.gmx.net GMX Mailservices ESMTP {mx027}
    HELO meineeigenedomain.net
    250 mx0.gmx.net GMX Mailservices {mx027}
    MAIL FROM: ich@meineeigenedomain.net
    250 2.1.0 ok {mx027}
    RCPT TO: meinegmxzieladresse@gmx.net
    250 2.1.5 ok {mx027}
    DATA
    354 mx0.gmx.net Go ahead {mx027}
    Subject: eine kleine Testmail
    Hallo,
    
    Das ist eine Testmail.
    
    Bis dann.
    .
    250 2.6.0 Message accepted {mx027}
    QUIT
    221 2.0.0 GMX Mailservices {mx027}
    Connection closed by foreign host.
    

    Subject ist natürlich optional, aber praktisch. From: - und To: -Header wären auch nicht dumm gewesen.



  • Hm.. ich bin ja auf den Geschmack gekommen und wollte das testen, aber bei mir schließt mx0.gmx.net die Verbindung einfach sofort. Mögen die micht nicht? 🙂



  • cooky451 schrieb:

    Hm.. ich bin ja auf den Geschmack gekommen und wollte das testen, aber bei mir schließt mx0.gmx.net die Verbindung einfach sofort. Mögen die micht nicht? 🙂

    Die mögen es generell nicht, wenn man sich von irgendwelchen x-beliebigen Clients aus irgendwelchen x-beliebigen unbekannten oder geblacklisteten Adressbereichen verbindet. Von einem bekannten Mailserver mit Reverse-DNS-Eintrag und statischer IP geht das bestens. Von dir zuhause aus vermutlich nicht. (Von mir zuhause aus auch nicht.)



  • Thema und Diskussion sind offenbar interessant! Ich habe einen E-Mail-Versand an die eigene Adresse aus einem Programm eingerichtet. Dafür benutze ich die MAPI32.DLL und versende direkt nach gemail.com (google) und live.de (microsoft). Das läuft erfolgreich. Beim Senden erfolgt eine Warnmitteilung "Ein Programm will in Ihrem Auftrag eine E-Mail senden mit den Buttons [Senden][Nicht Senden]". Auf der Empfangsseite wird die E-Mail ggfs. als potentielle Spam eingestuft, kann aber problemlos geöffnet werden.

    Jetzt meine Fragen:
    1. Kann man sich bei allen Mail-Servern darauf verlassen?
    2. Bleibt dieser Weg weiter offen oder wird er aus Sicherheitsgründen abgeklemmt?



  • Was heisst "direkt versenden" bei dir?

    Wenn du eine Mail schicken willst die ankommen soll musst du diese ueber einen gueltigen Mailserver relayen - sonst ist es Spam. Zumindest primitiv ausgedrueckt.

    Mails versenden geht also defakto nur mit einem EMail Konto.

    Denn wenn der Absender nicht verifiziert werden kann, landet die Mail in Spamfiltern.

    c-plusplus.net waere zB ein solcher Mailserver. Deshalb kann das Forum hier zB auch Mails verschicken. Interessiert dich was alles erfuellt sein muss damit ein Absender nicht als Spammer identifiziert wird oder was genau ist die Frage?



  • Der Fragesteller will eine E-Mail an eine eigene Adresse schicken. Dafür will er sich nicht erst anmelden mit Account und Passwort und sucht einen anderen Weg egal woher und egal ob das als Spam verdächtig eingestuft wird.

    Ich hatte erklärt, das ginge mit Mapi32 aus einem Programm. Die Mapi32 braucht dafür 2 einfache Strukturen, in die alles notwendige eingetragen wird. Dann sind die Adressen von 3 Mapi-Funktionen (MapiLogon, MapiSendMail, MapiLogoff) zu holen und diese Funktionen über die Adressen aufzurufen. Die Mapi32.dll macht das Senden bei mir über den Standard-Mailserver mit den angeführten Bedingungen bisher einwandfrei. Die Einstufung 'Spam-verdächtig' bleibt natürlich bestehen. Es geht aber doch um E-Mails an sich selbst und die kann man sortieren!


Anmelden zum Antworten