Also wie
@LimDul schon etwas gesagt hat: Du scheinst da komplett falsche Vorstellungen zu haben.
Ehe man auch nur eine Zeile Code schreibt, muss man sich mit der Problem- Domäne beschäftigen und diese verstanden haben. Ansonsten kann nichts sinnvolles raus kommen.
Also nur um das einmal grob zu umschreiben:
a) Domain Name System - das ist die Verwaltung von sogenannten Domains. Dies sind in der Regel offiziell registrierte Domains:
Es gibt eine Liste von offiziellen Top Level Domains und für jede Top Level Domain ist ein Verwalter zuständig. Z.B. die Top Level Domain de wird von denic verwaltet. Da kann man als normaler Anwender aber keine Domains registrieren. Die Registrierung läuft über weitere Firmen, die in der Regel als Provider auftreten. Das ist aber nicht zwingend notwendig. Man kann tatsächlich auch eigene Domains haben. Bestes Beispiel ist eine Fritzbox, die in der Regel fritz.box als Domäne anbietet.
b) Email für eine Domain wird per MX Record eingetragen. (Minimale Anforderung). Über den MX Record kann man abfragen, welcher Server für die Domain Emails annehmen darf/soll.
c) Mail-Server Ein Server muss natürlich existieren und muss auch entsprechend konfiguriert sein,
e) Email Programme greifen nun auf Email-Server zu um Emails zu schreiben und zu lesen.
Generell gibt es diverse standardisierte Verfahren. Angefangen vom dns lookup (per udp, tcp, https, ...) über SMTP (direkt, STARTSSL oder TLS verschlüsselt), POP3/IMAP ....
Ehe man jetzt eine neue Software schreiben möchte, ist also erst einmal die Frage, was genau Du schreiben willst. Welche Bereiche sollen abgedeckt werden? Generell würde ich davon abraten, Basis-Server neu zu entwickeln. DNS Server, diverse Server rund um Email Protokolle u.s.w. existieren bereits. Da wird es einfacher sein, um vorhandene Server herum zu entwickeln. Du kannst z.B. einen DNS Server konfigurieren und so ...
Oder einen Server, der SMTP behandelt ... oder POP3 oder IMAP anbietet...
Als Anfänger ohne jede Ahnung von der Problemdomäne KANN nichts sinnvolles dabei raus kommen:
- Der Umfang ist einfach zu groß für einen Anfänger
- Die Angriffsvektoren sind einfach zu existent (Die Zeit von Server hört auf einer IP bis hin zur ersten Attacke war vor Jahren schon wenige Minuten. Und das ist massiv runter gegangen....)
Daher überleg Dir genau, was Du machen willst. Beschäftige Dich im Detail mit der Thematik und dann kannst Du Aufwände schätzen...