Mail Sammler bauen

SpecialAgent

BSD Trainee
Hey Leutz,

wollt euch mal fragen ob es ein Tutorial gibt, indem es gut hervorgeht wir man einen Mail Sammler baut. Ich habe nämlich vom Thema Mail-Server absolut keine Ahnung.

Mein OpenBSD Server sollte alle meine FreeMail-Accounts besuchen, die Mails per POP3 abholen, nach meinen Filtern sortieren und auf dem Server speichern. Verfügbarkeit sollte über IMAP gehen. Sprich meinen Server als IMAP Server über den ich alle meine Mails abrufen kann.

Danke für die Tipps.

Gruss.
 
Ich wäre auch mal an einem Tip interessiert, da sich meine "Wünsche" mit denen von SpecialAgent decken:

- Abfragen von diversen POP3-Konten ==> hierfür würde ich getmail verwenden
- Zentralisiertes Vorhalten der Mails in IMAP-Konten ==> cyrus-imap
- Abholen/Bewirtschaften der Mails mittels IMPA-fähigen Mailclients ==> Thunderbird (für Win), Mail.app (für MacOSX)
- Versand der Mails vom jeweiligen Mailclient direkt an den Mailsserver des Providers

Wie gesagt, hat jemand einen Tip, da ich bei der Einrichtung des IMAP-Servers gescheitert bin?

Besten Dank und Gruss, s_e
 
cyrus würde ich für sowas nicht einsetzen. Solche "Enterprise"-Mailserver sind viel zu komplex und völlig overbloaded für solch einen Einsatzzweg.

Ich würde hierfür Dovecot empfehlen. Damit hat man in t <= 10min einen funktionsfähigen IMAP-Server. Als Mail-Receiver empfehle ich getmail. Zum ein-/aussortieren procmail. Als Spamfilter tut spamassassin sehr gute Dienste (lernt sogar selbst). Wenn man will kann man dann noch ein Web-Frontend wie Squirrelmail oder OpenWebMail drauf setzen um remote lesen zu können. Ich bevorzuge hierfür allerdings ssh+mutt auf dem Mailserver.

So sieht zumindest meine Konfiguration aus und ich bin sehr zufrieden damit. :) Dovecot ist auch mit mehreren 1000 Mails noch sehr performant.

Mehr dazu gibts etwa hier (noch unvollständig).:
http://wiki.bsd-crew.de/index.php/Mailserver_unter_FreeBSD

Gruß, r0b0
 
Hey,

danke für die Hilfe. Allerdings ist mir nicht ganz klar wie die ganzen Programme untereinander kommunizieren... wie ist das Konzept?

Danke und Gruss.
 
fetchmail holt die Mails per POP/IMAP/UUCP/ETRN ab und liefert sie an den MDA. Das kann entweder sendmail, cyrus oder zB procmail oder maildrop sein.

Je nachdem, welchen IMAP-Server du verwenden willst, musst du dich hier fuer einen entscheiden. Ich wuerde den Courier empfehlen, der kann einfach aufs Maildir-Format zugreifen. Dann nimmst du procmail, welcher die Mails filtert und zb nach ~/Mail im Maildir-Format speichert. Da kannst du dann auch mit lokalen Mailclients drauf zugreifen, und remote halt per IMAP.

hth
 
richtig interessant wird ja erst das versenden der Mails. Da kaum einer der Freemailer absenden ohne Authentifizierung, geschweige denn mit fremder Absender-Domain erlaubt, kommt man dann irgendwann auf Sender-basiertes Routing. Das wird mit POP-before-SMTP oder SMTP-Auth dann richtig cool zu konfigurieren.

All das ist aber nix gegen nen Yahoo- oder Hotmail-Fetcher, welcher das Webinterface nutzt und dort die Emailinhalte rausfiltert.

Wer hat denn noch ne UUCP-Conni oder logt sich per telnet/ssh remote ein und liest mit mutt oder pine?


das Wetter macht mir echt zu schaffen...
 
Hey ho,

versuche gerade das vorgeschlagene Tutorial durchzuarbeiten... allerdings bleib ich schon bei Getmail hängen.

Code:
[options]
verbose = 0 # schön still und leise bleiben
delete = true # lösche die mails, die du abholst
read_all = false # hohle nur neue mails ab
message_log = ~/.getmail/sven.log # merk dir was du gemacht hast, wenn mal was ist

[retriever]
type = SimplePOP3Retriever # einfaches POP3
server = ***
username = ***
password = ***

[destination]
type = Maildir
path = ~/mail/$MAILBOXNAME

also ich nehme mal an, dass ich im Verzeichnis /home/user/.getmail/ dateien wir z.b. web.rc oder gmx.rc anlegen muss. Nun gut...

jetzt muss ich zum Schluss den Pfad zur Mailbox angeben ( path = ~/mail/$MAILBOXNAME ). Ist das einfach nen textfile, das angelegt wird wenn es nicht vorhanden ist oder wie? greifen die andern progs dann auch darauf zu?

Danke und Gruss.
 
Nabend,
jetzt muss ich zum Schluss den Pfad zur Mailbox angeben ( path = ~/mail/$MAILBOXNAME ). Ist das einfach nen textfile, das angelegt wird wenn es nicht vorhanden ist oder wie?
Also da du ja Maildir angegeben hast ist es kein Textfile (das wäre mbox) sondern ein Verzeichnis. Die Struktur ist anscheinend nicht immer wirklich einheitlich, kann dir jedoch im normalfall auch egal sein.

greifen die andern progs dann auch darauf zu?
Genau, hierauf greift dann dein IMAP-Server zu.
 
Nabend,

danke für den Tipp. Aber bist du sicher, das dies nur ein einfaches Verzeichnis ist? Denn ich bekomme folgende Fehlermeldung:
Code:
Delivery error (maildir delivery 10475 error (127, maildir delivery process failed (not a Maildir (/home/getMailGuy/mail/GMX_MAILBOX/))))

nachdem ich getMail mit folgendem Befehl ausgeführt habe:

Code:
getmail -al -r/home/getMailGuy/.getmail/gmx-account.rc

mit dieser Konfigurations Datei ( die ich übrigens dem Wiki ( Tutorial oben ) entnommen und gebugfixt habe:

Code:
[options]
verbose = 0
delete = false
read_all = false
message_log = ~/.getmail/getmail.log # merk dir was du gemacht hast, wenn mal wa
s ist

[retriever]
#einfaches POP3
type = SimplePOP3Retriever
server = pop.gmx.de
username = xxx@gmx.de
password = xYx

[destination]
type = Maildir
path = ~/mail/GMX_MAILBOX/

jetzt hab ich in der Doku gelesen, dass man die Mails auch direkt einem MDA wir procmail zuführen kann. Also ich brauch nicht den Umweg über ein Verzeichnis machen?

Danke und Gruss.
 
Maildir ist nicht "einfach" nur ein Verzeichnis. Es braucht bestimmte Permissions und die Unterverzeichnisse cur, new u. tmp. Am besten legst du es mit maildirmake(1) an (ist bei courier dabei, IIRC)
 
Hey,

so courier-imap-3.0.5p2 ist mit pkg_add installiert.... allerdings finde ich kein makemaildir program, mal ein wenig nachgesucht, ist auch nicht in den courier-utils dabei! ( laut homepage ).... bissel verwirrend und kompliziert das alles ist!

kennt denn keiner nen gutes Tutorial für diese relativ einfache Aufgabe, das würd verdammt Zeit sparen! ( ich mein, den wunsch nen ordentlichen Mailsammler zu haben ist doch nen Wunsch, den wohl so gut wie jeder haben wird, der einen server am netz hat, oder ist jeder mit den freemailern zufrieden! ;-) )


Danke und Gruss.
 
Das Maildir Format ist simple, kann man selbst anlegen. Procmail legt die Verzeichnisse auch automatisch an. Alternativ kann man auch das auch mit nem mail-client machen. Sprich auf ein leeres Maildir connecten und dort die Folder anlegen.
 
also irgendwie bekomme ich das nicht hin!
ich bin nach dem tut im wiki vorgegangen: http://wiki.bsd-crew.de/index.php/Mailserver_unter_FreeBSD.

ich habe getmail konfiguriert für zwei accounts:

Code:
[options]
verbose = 0
delete = true
read_all = false

[retriever]
type = SimplePOP3Retriever
server = pop3.arcor.de
username = user@arcor.de
password = geheim

[destination]
type = Maildir
path = ~/mail/arcor/

Code:
[options]
verbose = 0
delete = true
read_all = false

[retriever]
type = SimplePOP3Retriever
server = pop.1und1.de
username = user
password = geheim

[destination]
type = Maildir
path = ~/mail/1und1/

dann habe ich dovecot exakt wie im tutorial konfiguriert und mich einmal per telnet eingeloggt.

jetzt habe ich getmail gestartet: getmail -v --rcfile ~/.getmail/1und1rc --rcfile ~/.getmail/arcorrc .

und dann kommt folgende fehlermeldung:

Code:
getmail version 4.3.3
Copyright (C) 1998-2004 Charles Cazabon.  Licensed under the GNU GPL version 2.
SimplePOP3Retriever:user@pop.1und1.de:110:
Delivery error (maildir delivery 12935 error (127, maildir delivery process failed (not a Maildir (/home/user/mail/1und1/))))
  msg 1/1 (968 bytes), delivery error (maildir delivery 12935 error (127, maildir delivery process failed (not a Maildir (/home/user/mail/1und1/))))
  1 messages retrieved, 0 skipped
SimplePOP3Retriever:user@arcor.de@pop3.arcor.de:110:
  0 messages retrieved, 0 skipped

ein ls -lha ~/mail bringt folgendes zutage:
Code:
user@rabbit:~/mail$ ls -lha
total 24
drwxr-xr-x   6 user  user   512B Aug  7 10:23 .
drwxr-x---  10 user  user   512B Aug  7 10:21 ..
drwx------   2 user  user   512B Aug  7 10:23 .INBOX
drwx------   2 user  user   512B Aug  7 10:23 cur
drwx------   2 user  user   512B Aug  7 10:23 new
drwx------   2 user  user   512B Aug  7 10:23 tmp

ich bin etwas ratlos...


mfg rabbit_openbsd
 
Wie sehen denn /home/user/mail/lundl und /home/user/mail/arcor aus?
Da soll getmail ja die Daten speichern, also müssen in diesen beiden Verzeichnissen jeweils die Verzeichnisse cur, new und tmp angelegt werden.

Regards,

Case
 
die exitsitieren nicht. cur, new, tmp werden unter ~/mail angelegt :-( :

Code:
user@rabbit:~/mail$ ls -lha
total 24
drwxr-xr-x   6 user  user   512B Aug  7 10:23 .
drwxr-x---  10 user  user   512B Aug  7 10:21 ..
drwx------   2 user  user   512B Aug  7 10:23 .INBOX
drwx------   2 user  user   512B Aug  7 10:23 cur
drwx------   2 user  user   512B Aug  7 10:23 new
drwx------   2 user  user   512B Aug  7 10:23 tmp
 
Dann erstell sie!

mkdir /home/user/mail/lundl /home/user/mail/arcor
cd /home/user/mail/lundl
mkdir cur new tmp
/home/user/mail/arcor
mkdir cur new tmp
 
die verzeichnisse arcor und 1und1 müssen versteckt sein - sonst geht es bei mir nicht.
ergo mkdir .arcor .1und1 .

das habe ich herausgefunden, indem ich mit einem mailgprog den server connected habe und dann ein verzeichnis erstellt.

keine ahnung, warum das so ist.
danke für die unterstützung!


mfg rabbit
 
alles funktioniert wunderbar soweit!
jetzt habe ich schon auf verschiedenstem wege versucht procmail einzubinden, aber es will nicht so wie ich will.
bei der installation habe ich mich etwas an dieser anleitung orientiert: http://www.newbie-net.de/anleitung_netbsd_courier.html#install_getmail , die aber leider nicht mehr ganz aktuell ist, was die konfiguration von getmail betrifft.
und das ist auch meine frage, was muß ich in die ~/.getmail/accountrc schreiben, damit die mails an procmail weitergeleitet werden?


mfg rabbit

p.s.: ich bekomme immer folgende fehlermeldung:
Code:
Warning: ignoring unknown parameter "postmaster" (value: | /usr/local/bin/procmail)
 
Also ich hab folgendes in meiner getmailrc stehen:

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

wobei 'case' der Name des Benutzers ist.
 
danke! das funktoniert wunderbar!!

ich habe alles eingerichtet bekommen! nochmal vielen dank.

unter openbsd ist die einrichtung von dem ssl-zugang etwas anders als unter freebsd:

das script /usr/local/share/doc/dovecot/mkcert.sh befindet sich hier: /usr/local/sbin/dovecot-mkcert.sh

ansonsten ists eigentlich das selbe!


mfg rabbit
 
Zurück
Oben