MTA implementieren

Moin,
normalerweise läuft eine Email über MUA, MTA, MDA und wieder MUA (Protokolle SMTP, X400, POP, IMAP…). Ich wollte jetzt fragen, ob es möglich ist, den MTA vereinfacht selber zu implementieren und eine Email direkt an den MDA zuzustellen, ohne Authentifizierung, ohne SMTP, auch möglicherweise als Spam behandelt, auch 2mal gesendet, wenn beim ersten Mal gedroppt/rejected.
Also vereinfacht gesagt, ich möchte mich beim Mailserver des Empfängers melden und eine Email zustellen/senden (Absender Xyz, Empfänger Abc).
Ist das erst Mal so ohne Weiteres möglich?
Auf StackOverflow steht leider immer nur SMTP.

Dass auf SO immer was von SMTP steht, ist klar - denn darüber werden Mails im Internet transportiert. Über kein anderes Protokoll, das ist der Standard. Lokal wird auch LMTP oder ein anderes Transportprotokoll (wenn überhaupt, teilweise wird auch direkt in die Mailbox geschrieben) verwendet.
Bei SMTP ist es so, dass prinzipiell jeder direkt beim Empfänger eine Nachricht abliefern kann. Aus Spamschutzgründen machen das die korrekt konfigurierten Mailserver aber nicht mit. Dort werden umfangreiche Absender(server)prüfungen durchgeführt, sodass man ohne einen korrekt aufgesetzten MTA kaum eine Chance hat, eine Mail einfach so zuzustellen.

*** Edit ***

Achso, dieses Thema passt nicht in die Rubrik “Java Grundlagen”… Wäre wohl besser im Bereich Netzwerkprogrammierung aufgehoben.
[edit SlaterB: verschoben]

Aus eigenen Tests kann ich das spontan mit “wird schwierig” beantworten.
Auch wenn du einen kompletten MTA lokal laufwn lässt wirst wegen deiner IP gegen Spam-Filter laufen die dann die Mail entweder gleich komplett ablehnen oder als Spam kennzeichnen.
Sauberer Mail-Verkehr braucht eine korrekt eingerichtete Domain und Kontrolle über den reverse-dns-record der verwendeten IP.

Ich hab einen MTA,

reverse-dns hab ich nicht, Mails werden bei fast allen gängigen Anbietern als Spam eingestuft. Das ist aber überhaupt nicht schlimm, schicke meisten mir eine Mail. :frowning: (Andere verschicken über den MTA nicht, der ist von außen wirklich unsichtbar :wink: , jaja, glaubt mir keiner)

Trotzdem würde ich gerne mal den direkten Weg gehen… Simple Mail Transfer Protocol – Wikipedia (hier über telnet), jetzt die Fragen der Fragen: Ist das Protokoll dasselbe, wenn ich mich direkt beim Mailserver des Empfängers melde? Auf SO steht dann noch: „need to lookup yourself the MX records in DNS“.

Schon mal jetzt vielen Dank für eure Antworten (bisherige und nachherige)! Ich werde es einfach mal TESTEN, was soll schon Schlimmes passieren? SSL, TLS,…, könnte auch schwierig sein. :verzweifel: Aber ich kann mich in nächster Zeit erstmal nicht im Forum melden. Bis denn!

Ja ist es. Mit dem Kommentar auf SO ist gemeint, dass der zuständige Empfängerserver über einen MX lookup herausgefunden werden muss. Der (oder die) für eine Domain zuständige Mailserver sind in der Regel andere als die, die per A lookup ausgegeben werden.

Das ist aber schade…

Das du keinen Zugriff auf den PTR-RR hast ist schon klar, denn auf diesen sollte nur der Zonen-Admin dem die IP-Range gehört Zugriffsrechte haben. Läuft der MTA bei dir lokal wird dies dein ISP sein, da ihm die IP gehört mit der du im Netz unterwegs bist.
Hier greift der erste Spam-Filter: reverse-dns-lookup. Wenn du dich bei einem SMTP-Server meldest musst du dies mit dem EHLO command machen. Dieses hat die Form EHLO servername.domain.tld. Nun prüft der empfangende SMTP-Server ob sich die IP rückwärts in diesen Hostnamen auflösen lässt. Passt das nicht (wie grundsätzlich bei Privatanschlüssen der Fall) bist du scheinbar nicht berechtigt dich unter diesem Namen zu melden was dann den SPAM-Filter triggert und deine Mail als solchen flaggt oder die Verbindung sofort beendet und somit die Annahme deiner Mail komplett verweigert.
OVH - wo mein Root gemietet ist - gestattet mir über das Admin-Panel für die mir zugewiesene IP selbst einen beliebigen PTR-RR angeben zu können.
Ich habe mich z.B. dazu entschieden dass meine IP von OVH rückwärts bitte nur in cryptearth.de aufgelöst werden soll. Das bedeutet auch dass ich meinen MTA so konfigurieren muss dass er sich auch nur mit EHLO cryptearth.de melden soll.
Die nächste Hürde ist SPF - das Sender Policy Framework. Dies ist eine Angabe in einem TXT-RR (hatte mal zeitweise seinen eigenen SPF-RR, wurde aber, weil alle doch nur TXT nutzten, wieder als deprecated zurückgenommen) der Domain und gibt an von welcher Quell-IP überhaupt Mails im Namen deiner Domain verschickt werden dürfen. Für meine Domain cryptearth.de ist dies z.B. die IP meines Root-Servers, da ich nur diesem den legitimen Versand von Mails für meine Domain gestatte. Jeder andere der dies versucht erhält ein SPAM-Flag der eine fremde IP keine Mails in meinem Namen verschicken darf. Natürlich muss dafür SPF ausgewertet werden - was nur bei den Großen der Fall ist - kleinere Server ignorieren es meistens.
Deine Mail ist also schon doppelt geflaggt - einmal weil der reverse-dns nicht zu dem Namen passt der du vorgibst zu sein und zum anderen weil du keine Berechtigung hast.
Genau so würde es mir ergehen wenn ich zu Hause einen Backup-Mail-Server einrichte. Auch wenn das mit dem reverse-dns noch machbar wäre (hab ne static IP und kenne den PTR-RR) müsste ich meine private IP erst dem SPF-RR hinzufügen damit legitim von zu Hause Mails für meine Domain versenden dürfte.
Dann kommt noch hinzu das viele Mail-Server eine Liste mit IP-Ranges führen und zwischen public und privateAdressen unterscheiden können. So ist es bei einigen Providern der Fall das diese privaten User-Anschlüssen einfach das Recht verwehren eine Mail selbst direkt abzuliefern sondern erfordern einen bekannten öffentlichen Mail-Dienst.
Würde ich also versuchen Google von meinem Privat-Anschluss aus ne Mail zu senden würde diese abgelehnt da ich von einer private-domain-ip komme und Google das halt nicht zulässt.

Das die Mails also überhaupt ankommen erstaunt - da man bei triple-flag eigentlich sofort in der blacklist landen sollte.

Zum anderen: Ja, es ist ganz normales SMTP, und bei vielen funzt es auch mit TelNet und ohne TLS - aber es hat sich mitlerweile zum Standard entwickelt dass mitlerweile auch die inter-Server-Verbindungen eigentlich nur noch gesichert ablaufen.

Nachtrag: Ich weiß nicht ob das so irgendwo genutzt wird - würde ich meinen eigenen MTA bauen der dann noch Mails empfangen können soll würde ich die DNS-Absicherung noch so erweitern das nach erfolgreicher PTR-RR Prüfung auch vorwärts versucht wird ob irgend ein A- oder AAAA-RR in die IP auflösen lässt.
Begründung: Nutzt die Domain kein SPF (kommt leider im privaten Umfeld mehr als nur zu oft vor) wäre es einem Spammer der Zugriff auf den PTR-RR seiner IP hat (wie ich bei OVH) z.B. möglich dort jeden beliebigen Domain-Namen einzutragen. Hat die Domain mangels SPF nun keine Liste der authorisierten Server könnte ich z.B. unter falscher Domain Mails verschicken.
Wenn jedoch der empfangende Mail-Server noch mal prüft ob einer der A-RR für die Domain passt wäre so prüfbar das mein Server mit der Domain nichts zu tun hat.

Ist mir nur so eingefallen - und kein Plan ob das ein MTA von Haus aus mitbringt - aber ich würde es so machen.

MTAs machen das alles grundsätzlich erst einmal nicht selbst. Es sind immer Erweiterungen, die Greylisting, DKIM-, SPF-, Blacklist-, Viren-, Spam-, Header- und sonstige Prüfungen machen und vom MTA eingebunden werden.
Viele der Maßnahmen sind aber zweischneidige Schwerter und haben Nachteile. Insbesondere treten bei den Domainprüfungen (also DKIM- und SPF-Prüfungen) Probleme mit weitergeleiteten Mails auf, die dann nämlich nicht mehr vom originären Absenderserver stammen.
Eine Prüfung, ob die IP-Adresse im A-Record hinterlegt ist, kann scheitern, wenn nicht alle A-Records zurückgegeben werden (das macht Google bspw. so).

Ist richtig und muss man natürlich beachten.
Ich denke die eigentlich Frage dürfte aber sicherlich geklärt sein: möglich ja, aber eben mit dem Risiko dass man relativ schnell auf der blacklist landet (oder die Mails zumindest als spam makiert werden). So lange man damit leben kann und es auch nur für den eigenen Gebrauch ist mag das sicher ok sein, aber ich bin der Ansicht, dass man, so bald mit “externen Kontakt” hat, sich schon mal die Mühe machen sollte sich für n 5er ne Domain und für n 10er zumindest n vps bei nem namenhaften Hoster zu holen - nach Möglichkeit bei einem der Zugriff auf den PTR-RR gewährt (z.B. OVH).
Ob man nun wie ich so ne möchtegern-middleware wie Citadel/UX nutzt (nach dem einige Probleme nach dem Umsteig von opensuse 13.2 auf tumbleweed fixen konnte nutzt ich es weiterhin) oder (wie ich ja eigentlich immer noch vorhab) n sauberes System mit z.B. postfix - kann ja, so lange es läuft und so eingerichtet werden kann wie nötig, so laufen.

Oder man wählt die Alternative wenn man selbst keine Domain hat oder sich nicht die Mühe eines eigenen Mail-Servers machen will und nutzt z.B. GMail. Wirkt zwar schon komisch wenn ich bei nem Dienst statt von der Domain ne Mail von nem GMail user bekomme - wäre mir aber lieber als irgendwas spam-geflaggtes weil man sich so ne Krücke hat einfallen lassen.

Mit einer eigenen Domain kann man gmail auch nutzen. Man darf seinen MX auf den gmail-MX setzen und kann dann sein gmail-Postfach mit einer vernünftigen Domain nutzen.

Wie gesagt, der MTA ist von Außen hin unsichtbar.

Es ist ja auch gut, schön, richtig, dass Gmail Mails „von Privat“ „restriktiv“ als Spam kennzeichnet - also das wäre nicht das Prob.

Wie gesagt, zur Zeit noch wichtige Dinge zu tun, werde irgendwann später alle Antworten noch mal erneut durchlesen - und das ganz in Ruhe. Danke für all eure Antworten, das Thema darf als [done] angesehen werden.^^

Seids mir bitte nicht böse, wenn ich nicht Antworte.

noch ein kleiner Nachtrag:

ich hatte mal (vor ein paar Jahren) einen Hamster bei mir zu Hause am laufen. Damit Mails eingeliefert werden konnten, entsprechen den Port freigegeben und bei DynDNS einen Account angelegt. Damit lies sich die Weiterleitung von Strato (irgendwas@domein.tld) auf irgendwas@account.dyndns.org durchreichen. Die Mails wurden damit direkt an den Hamster ausgeliefert.

Ich weis nun nicht ob immer erst einfach nur die DNS nach Mail-Server angefragt wird oder es bei Strato Zufall war. Freenet machte dies zu diesem Zeitpunkt nicht.

@cmrudolph
Ah, das wusste ich noch gar nicht, aber gut zu wissen das es sowas gibt. @mogel
Um Mails empfangen zu können brauchts ja nicht viel, aber vom eigenen Anschluss “sauber” Mails verschicken wird auf Grund der genannten Spam-Filter-Möglichkeiten doch etwas schwieriger.
@cb
Na, wenn du dich da mal nicht irrst. Aber sei es drum. Wie ich ja bereits sagte: So lange es für deine Zwecke ausreichend ist und funktioniert und du halt mit den Spam-Flags leben kannst - nutz es doch ruhig. Ich wollte dir das auch nicht ausreden sondern nur aufzeigen was es mitlerweile alles für Techniken gibt um solche potentiellen Spammer zu blockieren oder ih en zumindest den Wind aus den Segeln zu nehmen. Da hat sich im letzten Jahrzehnt so einiges getan, auch wen Spam und Porn sich immer noch unangefochten den Platz um den meisten Traffic teilen.