Mailhamster mit virtuellen Usern

Herrmann

Well-Known Member
Hallo zusammen,

hat jemand von euch schonmal versucht E-Mails für virtuelle User zu fetchen?
Da mein Mailserver ja seit kurzem nur noch mit virtuellen Usern arbeitet, überlege ich gerade wie man das realisieren könnte. Leider habe ich bisher noch keine Idee.

PS: Alle Nutzerdaten liegen aktuell in einer PostgreSQL Datenbank.
 
Herrmann,

kurz rekapituliert: Du hast einen Mailserver (POP/IMAP), der mit virtuellen Usern arbeitet, die in einer DB (postgres) liegen. Du willst nun von einem (oder mehreren) anderen Mailservern via POP/IMAP die Mails abholen und lokal in die Benutzerpostfächer einsortieren - korrekt?

Dann wäre fetchmail (cd /usr/ports/mail/fetchmail && make install clean) das Tool Deiner Wahl. Ich würde via isql (kenne mich mit postgres nicht aus, aber ein isql-Tool wird es bestimmt geben) die User aus der Datenbank auslesen (z.B. deren eMail-Adressen), via Skript eine Steuerungsdatei für fetchmail schreiben und dann das fetchmail-Skript anschubsen. ...und gut ist's.

Das ganze setzt voraus, daß Du einen lokalen SMTP-Server (oder wenigstens einen MDA) installiert hast, der weiß, wie die Mails an die (lokalen, virtuellen) User zugestellt werden.

Wenn ich die Problemstellung mißverstanden haben sollte, wären mehr Infos hilfreich. :)
 
Herrmann said:
hat jemand von euch schonmal versucht E-Mails für virtuelle User zu fetchen?
Ich mache das hier so. Ich habe noch Postfix + Cyrus + sasldb im Einsatz (und wenn sich das Dovecot Projekt doch nochmal entschliesst, dass die 100. Auflage von Version 0.99,999999 als 1.0-stable erscheint, dann möchte ich auch auf Dovecot umstellen).

Jedenfalls hole ich die Mails mit fetchmail ab. Ich habe zugegebenermaßen nur 2 Postfächer die abgeholt werden müssen, aber dadurch, dass fetchmail die Mail ja an den lokalen SMTP-Server übergibt, ist es egal, dass das nur ein virtuelles Postfach ist.

HTH & Ciao.
Markus Mann
];-)
 
Ich erstelle für jeden virtuellen User automatisiert eine .procmailrc. Dort wird definiert wie die Mails für den jeweiligen User einzusortieren sind und ggf. SpamAssassin aufgerufen. Soweit auch kein Problem.

Nun zu meinem Problem:

Code:
[destination]
type = MDA_external
path = /usr/local/bin/procmail
arguments = ("-duser1", )

In den Tutorials wird ja procmail als Argument der jeweilige Username übergeben. Da es bei mir aber nur einen realen User gibt (sind ja alle nur virtuell vorhanden), suche ich eine Möglichkeit dort statt dem Usernamen den Pfad zu einer .procmailrc zu übergeben, damit procmail die des jeweiligen virtuellen Users verwendet.

Ich hoffe ich habe mich verständlich ausgedrückt.
 
aaaargh! Plötzlich sieht das Problem ganz anders aus. :(

Es geht also nur um die lokale Zustellung der Mails via procmail an die virtuellen Postfächer.

Jetzt wäre nur noch sinnvoll zu erfahren, welchen Mailer Du einsetzt und wie sonst Deine Umgebung aussieht. Leider sind meine hellseherischen Fähigkeiten heute früh nicht mit mir zusammen aufgestanden.... ;)
 
volker68 said:
aaaargh! Plötzlich sieht das Problem ganz anders aus. :(
Sorry wenn ich mich beim letzten mal unklar ausgedrückt habe :rolleyes:

volker68 said:
Jetzt wäre nur noch sinnvoll zu erfahren, welchen Mailer Du einsetzt und wie sonst Deine Umgebung aussieht. Leider sind meine hellseherischen Fähigkeiten heute früh nicht mit mir zusammen aufgestanden.... ;)

Hier mal ein kurzer Überblick: Alle User sind in einer PostgreSQL Datenbank gespeichert. Postfix dient als SMTP und Dovecot als IMAP. POP3 soll es erstmal nicht geben. Nun möchte ich jedem virtuellen User die Möglichkeit bieten Mails von "fremden" Account z.B. web.de, GMX usw abzurufen. Wenn möglich hätte ich also für jeden User gerne eine .procmailrc um die Mails einzuordnen. Eigendlich wollte ich zum fetchen der Mails getmail verwenden - bin da aber sehr flexibel. Die gefetchten Mails sollen optional auch noch durch einen Spamfilter gejagt werden können - SpamAssassin ist da meine aktuelle Wahl.

So wie ich gelesen habe, kann man procmail ganz einfach eine Konfiguration als Parameter übergeben. Nur leider habe ich bisher keine Möglichkeit gefunden diese mit getmail and procmail zu übergeben.
 
Du verwendest procmail als Zusteller? Was spricht eigentlich gegen den Dovecot-eigenen LDA "deliver"? Der kann sehr wahrscheinlich mit seinen eigenen virtuellen Usern umgehen (man merkt dem Wiki an, dass das Dovecot Projekt einen Mangel an Personal hat).

Ich bin hier auch sehr an einer Lösung interessiert, da auch bei mir die Umstellung auf Dovecot in der Warteschleife hängt und ich ehrlich gesagt gerne auf procmail oder einen anderen externen LDA verzichten würde.

Ciao.
Markus Mann
];-)
 
Last edited:
Herrmann,

also ich ziehe mein aaargh teilweise zurück, aber so richtig Struktur ist bei Dir immernoch nicht drin.

Nun schrittweise:

Du hast einige virtuelle User gehostet - das funktioniert hoffentlich.
Die Zustellung neuer Mails an diese virtuellen User machst Du via procmail (und ich hoffe, auch das funktioniert).
Du willst nun von anderen Mailservern Mails abholen und an diese virtuellen User zustellen.

Wenn das so paßt (die Definition der User in der pgres-DB ist hierbei erstmal wenn überhaupt nur ein Randproblem, da das nur von postfix benutzt wird), dann kannst Du einfach fetchmail einsetzen.

Dem fetchmail sagst Du so Sachen wie "hole vom Server xyz Mails für den Account userbla ab und übergebe sie dem lokalen SMTP, der das wiederum an den User bla@virtual reichen soll".

Das hat mit procmail & Co (delivery agents) nichts zu tun, da fetchmail die Mails an den SMTP übergibt, der wiederum aufgrund Deiner Einstellungen entscheidet, wohin das Mail gehen soll (und bei lokalen Mails später den delivery agent anspricht).

Dann kannst Du für jeden dieser User ein entsprechendes Skript bauen, das er wie auch immer (zeitgesteuert oder via Webfrontend per Mausclick) ausführen lassen kann. Ein großes Skript für alle User ist auch machbar.

Soweit die Vorgehensweise, wenn Dein Problem tatsächlich das "fetchen" sein sollte.
 
volker68 said:
Die Zustellung neuer Mails an diese virtuellen User machst Du via procmail
Nein, im Moment läuft auf dem Mailserver nur Postfix, Dovecot und PostgreSQL. Die Mails werden direkt von Postfix in die jeweiligen Ordner gelegt.

volker68 said:
Dem fetchmail sagst Du so Sachen wie "hole vom Server xyz Mails für den Account userbla ab und übergebe sie dem lokalen SMTP, der das wiederum an den User bla@virtual reichen soll".
Hast du dafür irgendeine Doku zu Hand, wo genau das erklärt wird.

Werde mich wohl noch etwas belesen müssen.
 
Back
Top