Autor Beitrag
Kizetsu
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 20.09.16 11:18 
Hallo,

wie der Titel schon verrät geht es in erster Linie um ein theoretisches Experiment. Vielleicht werde ich es auch noch praktisch umsetzen, sofern ich gute Ansätze ausarbeiten kann und die Zeit finde.

Es geht darum, dass ich einen eigenen Mail-Server programmieren möchte. Das System soll Implementierungen für SMTP, POP3 und IMAP haben, sowie einen Spamservice bzw. einen Quarantäne-Service. Laufen soll der Mail-Server auf einem Linux-System.

Meine Frage ist nun wie ihr die Konzeptionierung angehen würdet:
Welche Sprachen würdet ihr präferieren?
Wo seht ihr Schwierigkeiten die man vorher bedenken sollte?
Zu welchem Zeitpunkt ist eurer Meinung nach der Eingriff des Spamservice am sinnvollsten?


Wie gesagt geht es in erster Linie mal um die Theorie. Falls ich das Projekt umsetzen sollte werde ich aber gerne (sofern Interesse besteht) den Code hier veröffentlichen.

Der Hintergrund ist dass ich in den letzten Monaten an Scoring- und KNN-Algorithmen arbeite. Als kleines Nebenprojekt wollte ich einen lernenden Spamservice aufsetzen, der via Scoring selbst Marker setzt. In diesem Zusammenhang dachte ich mir dann allerdings, da es nicht nach all zu viel Aufwand aussieht, auch den Mailserver selbst zu programmieren.

Auf dieses Forum wurde ich übrigens aufmerksam durch einen alten Eintrag zu Mail-Servern eines Studenten. Bei ihm ging es zwar am Ende nicht wirklich um einen richtigen Mailserver aber die Antworten ließen durchblicken dass sich hier zumindest der Ein oder Andere mit der Thematik gut auskennt.

Ich würde mich über konstruktive Antworten sehr freuen.
Viele Grüße
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Di 20.09.16 11:53 
Nur um die Rahmenbedingungen zu kennen, worum geht es Dir?
Möchtest Du das Just-for-fun programmieren bzw. weil Du lernen willst, oder willst Du es programmieren, weil Du einen Mailserver für einen bestimmten Zweck brauchst?

Wenn zweiteres zutrifft ist die Antwort wohl: nimm was fertiges, da gibt es genug Auswahl.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 20.09.16 12:01 
Zitat:
Welche Sprachen würdet ihr präferieren?


Diejenige die der Entwickler ausreichend gut beherscht und für das Problem geeignet ist.

Zitat:
Wo seht ihr Schwierigkeiten die man vorher bedenken sollte?


Komplexität der Protokolle. Die Komplexität der genannten Protokolle ist imens. Aus dem nichts rauszufinden welche RFC man mindestens benötigt, also ausreichend Praxisrelevanz haben und was bei einem typischen MailServer trotz Beschreibung der Standards in RFC doch anders passieren müssen damit übliche Clients funktionieren ist schwierig. Wenn es die nur um die Anwendung der von dir genannten Algorithmen geht ist der Aufwand unverhältnismäßig groß. Dann versuche lieber ein Plugin/Addin für ein existierenden Mailserver zu schreiben. Also andere ist kein kleines Nebenprojekt. In einen Mailserver kannst du viele Mannjahre an arbeit versenken bevor du was hast was irgendeiner Praxisrelevanz auch nur nahe kommt.

Zitat:
Zu welchem Zeitpunkt ist eurer Meinung nach der Eingriff des Spamservice am sinnvollsten?


Kommt drauf an. Da gibt es keine allgemeine Antwort drauf ohne genaue Definition was passieren soll. Wenn dir selber das nicht genau genug bewußt ist wäre ein Mailproxy (also ohne irgendeinen MailServer) vielleicht das bessere Ziel um deine Algorithmen auszuprobieren. Denn kann man dann passend vor/hinter dem Mailserver in den POP/IMAP oder SMTP verkehr einhängen.
Kizetsu Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 07.10.16 13:46 
Hallo,

erst Mal vielen Dank für die Antworten und verzeiht meine verspätete Rückmeldung. Ich war in ein anderes Projekt sehr stark eingespannt und kam nicht dazu hier rein zu schauen.

Der Zweck des Ganzen sollte sein, dass ich ein kleines System habe bei dem ich mich direkt einklinken kann, ohne mich mit fremden APIs rumschlagen zu müssen.
Mein Spamservice sollte nach Möglichkeit direkten Zugriff auf die Mailkonten haben. Von früher (long long time ago) hatte ich noch den Mailman in Erinnerung und dass man bei diesem System auch jederzeit über die Shell vollen Zugriff auf alle Mails inkl. Inhalten hatte. Daher kam ich überhaupt auf die Idee selbst etwas zu schreiben.

Fazit:
Also ich habe mich nach euren Antworten dazu entschieden keinen eigenen Mailserver zu schreiben sondern einen Dovecot zu verwenden.
Hier sehe ich für mich die beste Möglichkeit ein Plugin zu schreiben, da ich mich mit dem System auskenne und Dovecot schon seit ein paar Jahren als privaten Mailserver verwende.
Selbst einen Mailserver zu schreiben (selbst wenn es nur eine "Mini-Anwendung" wäre) ist wohl wirklich zu viel Aufwand, nur um eine kleine Testmaschine zu haben.

Viele Grüße
hydemarie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 475
Erhaltene Danke: 51



BeitragVerfasst: Sa 08.10.16 23:33 
Für einen Mailserver kommst du nur schwerlich um die Aufgabe herum, fremden Code zu benutzen (es sei denn, du schreibst das ganze Betriebssystem selbst). Ich finde die Implementierung von RFCs übrigens durchaus lehrreich, du lernst dabei eine Menge über deine jeweilige Programmiersprache.

Zitat:
Das System soll Implementierungen für SMTP, POP3 und IMAP haben, sowie einen Spamservice bzw. einen Quarantäne-Service.


Dir ist sicherlich klar, dass Dovecot lediglich POP3 und IMAP unterstützt und du für SMTP weiterhin einen SMTP-Server benötigst und für Spam und Quarantäne ebenfalls noch gesorgt werden muss.