Custom E Mail Adresse mithilfe Serversocket oder ähnliches

ErfinderLabyrinth

Bekanntes Mitglied
hi,
ich möchte ein Server erstellen, wo man eine E-Mail zum Server sendet und der Inhalt in die Konsole geschrieben wird. Die Frage ist nur, wie ich den Serversocket oder ähnliches erstelle, sodass ich E-Mails empfangen kann

Ich benutze Windows 10 und Java 17
 

KonradN

Super-Moderator
Mitarbeiter
Ich fürchte, dass es nicht so einfach funktioniert, wie Du Dir das vorstellst.

Email nutzt ein Protokoll, das Simple Mail Transfer Protocol (SMTP). Dazu gibt es dann RFCs, z.B. die 2821 (https://www.ietf.org/rfc/rfc2821.txt).
Dann gibt es eine ganze Reihe an RFCs, wie eine Email aussehen kann - fängt an mit RFC 822 aber da gibt es ganz viel z.B. 2822 (https://www.ietf.org/rfc/rfc2822.txt) aber auch mehrere zu MIME und Co.

Du kannst natürlich einen Server selbst erstellen, also ein Socket öffnen um dann dort das SMTP Protokoll zu implementieren. Dann kannst Du bei einem Client z.B. Deinen Server eintragen. Wenn Du aber generell Emails empfangen willst, dann brauchst Du auch den ganzen DNS Kram, d.h. eine Domain für die Dein Server als Mailserver eingetragen wurde und so. Je nachdem, was Du willst, kann das also relativ komplex werden.
 

ErfinderLabyrinth

Bekanntes Mitglied
Ich fürchte, dass es nicht so einfach funktioniert, wie Du Dir das vorstellst.

Email nutzt ein Protokoll, das Simple Mail Transfer Protocol (SMTP). Dazu gibt es dann RFCs, z.B. die 2821 (https://www.ietf.org/rfc/rfc2821.txt).
Dann gibt es eine ganze Reihe an RFCs, wie eine Email aussehen kann - fängt an mit RFC 822 aber da gibt es ganz viel z.B. 2822 (https://www.ietf.org/rfc/rfc2822.txt) aber auch mehrere zu MIME und Co.

Du kannst natürlich einen Server selbst erstellen, also ein Socket öffnen um dann dort das SMTP Protokoll zu implementieren. Dann kannst Du bei einem Client z.B. Deinen Server eintragen. Wenn Du aber generell Emails empfangen willst, dann brauchst Du auch den ganzen DNS Kram, d.h. eine Domain für die Dein Server als Mailserver eingetragen wurde und so. Je nachdem, was Du willst, kann das also relativ komplex werden.
wie implementiere ich das SMTP Protokoll?
 

KonradN

Super-Moderator
Mitarbeiter
Indem du dir die RFC Dokumente anschaust um zu verstehen, was das so hin und her gesendet wird. Ist ein einfaches, Textueilen-Basiertes Protokoll.
 

KonradN

Super-Moderator
Mitarbeiter
Ein ServerSocket ist nur ein Teil, das auf einem Port auf Verbindungen wartet. Nicht mehr!

Also wie ein Reifen - und nun fragst Du: Was musst du mit den Reifen machen, damit Du damit nach Italien fahren kannst.
--> Du musst da erst ein Auto bauen - da wird dann der Reifen nur ein kleines Teil sein. (Das wäre dann sozusagen des Protokoll, das Du implementieren willst. Du kannst Dir aber auch ein ganzes Auto kaufen oder komplexe Teile kaufen. Das muss man nicht selbst bauen!)
--> Du musst dann einen Weg finden, wie Du nach Italien kommst - das wäre hier dann das ganze drumherum, das Notwendig ist, damit da Dein Server überhaupt angesprochen wird. Und daran wirst Du generell nicht vorbei kommen.

Nur um sowas zu machen, musst Du verstehen, wie ein Auto funktioniert (Wie willst Du etwas programmieren, wenn Du nicht verstehst, wie es funktioniert?) und wie man es dann bedient.
 

LimDul

Top Contributor

ErfinderLabyrinth

Bekanntes Mitglied
Ich kenne mich mit Sockets und Serversocket aus. Mein Problem: ich weiß den richtigen port nicht d.H. ich erstelle zwar ein Serversocket, aber wenn ich die E-Mail sende, wird kein Socket / Verbindung geöffnet
 

KonradN

Super-Moderator
Mitarbeiter
Mein Problem: ich weiß den richtigen port nicht

Der unverschlüsselte Standard-Port ist 25/tcp

ich erstelle zwar ein Serversocket, aber wenn ich die E-Mail sende, wird kein Socket / Verbindung geöffnet
Was genau machst Du? Wenn Du mit einem Client eine Email versendest, dann gibst Du ja den SMTP Server mit Port an - da wäre es also egal, welchen Port Du verwendest.

Wenn Du mit Deinem Client eine Email absendest und diese an den Provider übergibst: Was hast Du wie konfiguriert, so dass Du erwartest, dass da eine Verbindung geöffnet wird?
 

ErfinderLabyrinth

Bekanntes Mitglied

Der unverschlüsselte Standard-Port ist 25/tcp


Was genau machst Du? Wenn Du mit einem Client eine Email versendest, dann gibst Du ja den SMTP Server mit Port an - da wäre es also egal, welchen Port Du verwendest.

Wenn Du mit Deinem Client eine Email absendest und diese an den Provider übergibst: Was hast Du wie konfiguriert, so dass Du erwartest, dass da eine Verbindung geöffnet wird?
Ich kann keinen Port angeben, wird nicht akzeptiert und der Port 25 funktioniert auch nicht, genauso wenig wie 2525 und 587
 

KonradN

Super-Moderator
Mitarbeiter
Was genau versuchst Du? Was gibst Du wie an. Ich habe das Gefühl, dass Du derzeit etwas versuchst, das so gar nicht klappen kann. Daher teile uns bitte die genauen Details mit!
 

Jw456

Top Contributor
wenn du es mit Outlook an deinen Eigenen Rechner der dann auch Server sein muss schicken willst. Musst du das auch in Outlook mit einen Kontoangeben. Dort ist dann deine IP die Server Adresse und den Port könntest du selber bestimmen am besten Standard 25

Das wird auch nicht gehen da Outloock ja immer prüft ob der Server Erreichbar ist. Beim Konto einrichten.
 
Zuletzt bearbeitet:

ErfinderLabyrinth

Bekanntes Mitglied
Wie sieht den der Code für den ServerSocket aus, wie sieht die Konfiguration in Outlook aus?
Code von Serversocket:
Java:
public static void main(String[] args) throws IOException {
        @SuppressWarnings("resource")
        ServerSocket socket = new ServerSocket(587);
        System.out.println(socket.getLocalSocketAddress().toString());
        Socket client = socket.accept();
        System.out.println("accepted");
        BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));
        while (true) {
            System.out.println(reader.readLine());
            
        }
        
    }
Outlook hat die Standart Konfiguration
 

KonradN

Super-Moderator
Mitarbeiter
Outlook hat die Standart Konfiguration
Ohne Details kann man Dir nicht helfen.
  • Was hast Du in Outlook konfiguriert?
  • Was genau versuchst Du, so dass Du eine eingehende Verbindung erwartest?

Ich vermute, dass Du einfach eine komplett falsche Vorstellung hast, wie der Email-Versand funktioniert. Aber ohne Details kann man das nur vermuten. Und da eine komplette Beschreibung das Forum schlicht sprengen würde, sehe ich so einfach keinen Ansatz dir zu helfen.

Wenn Du mit "Standard Konfiguration" meinst, dass Du ein Email Konto konfiguriert hast und Du somit alle Emails per SMTP an den Mailserver des Providers übergibst, dann ist die Frage: Was für eine Email versendest Du, damit die bei Dir ankommt?

Was wäre dazu notwendig?
a) Eine eigene Domain. Ich nehme da einfach einmal meine Domain kneitzel.de als Beispiel für das folgende Beispiel
b) In dieser Domain muss dann ein Mailserver eingetragen werden. Dazu dienen MX Einträge. Davon kann es mehrere geben. Bei mir sind das Einträge, die auf Google verweisen: aspmx.l.google.com, alt1.aspmx.l.google.com, ... , alt4.aspmx.l.google.com. Das ist halt eine Funktionalität, dass es secondary Mailserver geben kann, die Emails auch annehmen können. Bei Deiner Domain bräuchtest Du dann einen Eintrag, der auf Deinen Server verweist.

Dann könntest Du eine Email an eine Adresse der Domain versenden und diese dem Provider übergeben. Der Mailserver des Providers schaut dann im DNS nach, welche Server verantwortlich sind um diese dann anzusprechen. Dazu muss der Server aber auch erreichbar sein vom Mailserver des Providers.

Was aber auch gehen kann: Der Client will ja per SMTP die geschriebene Mail los werden. Du kannst also ein Konto erstellen, das als SMTP Server Deinen Server angibt. Da kannst Du dann beliebige Daten konfigurieren. Also auch einen beliebigen Port. (Das geht bei dem Server 2 Server Transfer nicht. Da muss es ein Standard Port sein. Wobei da ein SSL verschlüsselter Port per default genommen wird.
 

LimDul

Top Contributor
Was genau willst du eigentlich machen?

Variante a:
* Wenn jemand (egal wer) eine Mail an z.B. erfinderlabyrinth@example.com schickt, soll sie in deinem Java Programm landen?

Variante b:
* Du willst mit Outlook direkt mit deinem Java-Programm kommunzieren, so dass jede Mail, die du darüber versendest in deinem Java-Programm landet (und nicht beim Empfänger)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Link aus einer E-Mail aufrufen Netzwerkprogrammierung 2
M Mit Java Mail Mails an Webmailer schicken Netzwerkprogrammierung 1
T E-Mail versenden. Netzwerkprogrammierung 8
Niggo_ Probleme mit Java Mail Netzwerkprogrammierung 14
K Probleme bei HTML-Mail-Abruf mit IMAP bei 1und1 Netzwerkprogrammierung 2
M E-Mail - Verbinden zu web.de Netzwerkprogrammierung 8
S mail versand Netzwerkprogrammierung 1
G Mail senden funktioniert nicht mit SSL Netzwerkprogrammierung 7
E Wie kann man einen einfachen E-Mail Server schreiben Netzwerkprogrammierung 2
D Java Desktop Mail, vorbereitete Mail Netzwerkprogrammierung 5
D JavaMail: HTML Code einer Mail Netzwerkprogrammierung 9
M Mail über Exchange versenden Netzwerkprogrammierung 13
T Java Mail port ändern Netzwerkprogrammierung 4
V Java Mail Api - IMAP Problem Netzwerkprogrammierung 6
F TLS bei mail benutzen Netzwerkprogrammierung 2
T E-Mail über javax.mail.Message Netzwerkprogrammierung 2
R Versenden einer MIME-Datei per E-Mail [solved] Netzwerkprogrammierung 5
N E-mail versenden Netzwerkprogrammierung 4
A html - E-mail - Bilder Netzwerkprogrammierung 4
A attachment einer Mail speichern Netzwerkprogrammierung 5
G Validierung von Internetadressen - Kontroll Mail oder so. Netzwerkprogrammierung 4
B log4j e-mail appender Netzwerkprogrammierung 4
B Mail Server selber schreiben Netzwerkprogrammierung 26
S Mail anhang in InputStream packen Netzwerkprogrammierung 5
R Mail und Mime Type Netzwerkprogrammierung 4
F Java Mail . Exception java.lang.NoClassDefFoundError Netzwerkprogrammierung 2
B Url-Link aus einer E-Mail aufrufen Netzwerkprogrammierung 2
G Java Mail etwas unsicher? Netzwerkprogrammierung 4
H Mail über URLConnection Netzwerkprogrammierung 8
G MAIL API Netzwerkprogrammierung 4
K Problem bei Mail-Versand mit Anhängen Netzwerkprogrammierung 2
L JavaMail: Mail in Posteingang aber nicht in Versendet Netzwerkprogrammierung 2
M SMTP-Mail Netzwerkprogrammierung 2
E smtp Zugriffsproblem mit Java Mail API Netzwerkprogrammierung 3
H E-Mail Programm Netzwerkprogrammierung 3
P IP-Adresse von Drahtlos-LAN-Adapter WLAN Netzwerkprogrammierung 1
M Fritzbox Mac Adresse Hinzufügen Netzwerkprogrammierung 2
Java_RY Die IP-Adresse des Eigenen Hostes ausgeben Netzwerkprogrammierung 4
O HTTP IP Adresse verschleiern Netzwerkprogrammierung 19
O HTTP IP Adresse verschleiern Netzwerkprogrammierung 5
O Ip Adresse verschleiern Netzwerkprogrammierung 3
M Socket IP-Adresse Netzwerkprogrammierung 8
N Multicast Adresse herausfinden des PCs Netzwerkprogrammierung 11
G ServerSocket.accept() überschreibt IP-Adresse Netzwerkprogrammierung 4
H Eine Mac-Adresse übers Internet ermitteln Netzwerkprogrammierung 2
P IP-Adresse per Hand einstellen Netzwerkprogrammierung 11
Kr0e Netty3 + Localhost Adresse, Durchsatzdrosselung ? Netzwerkprogrammierung 6
C Mac-Adresse des Systems Netzwerkprogrammierung 2
B Globale IP-Adresse auslesen - Java Applet Netzwerkprogrammierung 2
S Port auf einer bestimmten IP-Adresse auslesen? Netzwerkprogrammierung 6
B Lokale IP Adresse bestimmen Netzwerkprogrammierung 12
G IP Adresse vergeben Netzwerkprogrammierung 18
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
M Bestimmung der Netzwerkklasse mittels IP-Adresse Netzwerkprogrammierung 3
T IP Adresse mit Hilfe der MAC Adresse ermitteln Netzwerkprogrammierung 3
W Bestimmt IP Adresse verwenden wenn man mehrere hat Netzwerkprogrammierung 5
C MAC Adresse Netzwerkprogrammierung 5
G Eigene IP-Adresse hinter Router ermitteln Netzwerkprogrammierung 1
zilti IP-Adresse Netzwerkprogrammierung 10
J Prüfen, ob IP-Adresse gültig ist Netzwerkprogrammierung 5
J Socket - Remote/Client Mac-Adresse? Netzwerkprogrammierung 3
C IP adresse anhand einer domain adresse auslesen / ermitteln Netzwerkprogrammierung 3
F IP-Adresse auslesen Netzwerkprogrammierung 7
M Eigene IP-Adresse Netzwerkprogrammierung 37
O IP adresse ermitteln Netzwerkprogrammierung 11
K IP Adresse erhöhen Netzwerkprogrammierung 4
S wie finde ich die ip adresse vom client heraus? Netzwerkprogrammierung 16
Z Physikalische Adresse der Netzwerkkarte Netzwerkprogrammierung 4
I IP Adresse des Clients einer Socket Verbindung Netzwerkprogrammierung 2
bernd IP Adresse Netzwerkprogrammierung 13
D DynDNS-Adresse ändert sich während Server pollt Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben