Courier ist ein sehr vielseitiger MailServer.
Homepage: http://www.courier-mta.org/
Lizenz: GPL
Courier besteht aus mehreren Modulen, die teilweise auch mit anderen MTAs verwendet werden.
Courier unterstützt so ziemlich jeden Standard und sei er noch so neu. Zu den Funktionen zählen:
faxversand über sendfax
MSA (Message Submission Agent)
Authentifizierung über Systemaccounts, MySQL, PostgreSQL, LDAP, ...
- Domain accounts
- Anti-spam DNS Blacklists
DSN (Delivery Status Notification)
uucp (über externes programm)
Courier benutzt das Maildir-Format als Standard, dass im Vergleich zu anderen Formaten wie mbox eine bessere Performance unter Last aufweist.
Auch ein CGI-Programm zur Administration ist enthalten.
Tips & Tricks
Da Courier hohe Kompatiblität zu qmail aufweist, können viele Programme und Tricks von qmail.org benutzt werden.
hosteddomains und aliases können eine Datei oder auch ein Verzeichnis sein, wobei alle darin enthalten Dateien zusammengefasst werden. Die Möglichkeit des Verzeichnisses bietet z.B. Hostern den Vorteil, dass sie für jeden Kunden eine extra Datei anlegen können, und sie nicht in anderen Dateien editieren müssen (was immer eine Fehlermöglichkeit darstellt).
Wenn man Mail per smtp empfängt (auf einem normalen Server der Fall), muss man die Domains, die in hosteddomains und locals aufgeführt sind, auch in esmptacceptmailfor eintragen.
Mailfilter
Eine geniale Sache bei Courier sind die Möglichkeiten zur Filterung von Mails. Dazu gibt es zwei Möglichkeiten:
Nach Empfang
kann die Mail durch einen MDA nachverarbeitet werden (das kann eigentlich jeder MailServer).
Es dient hauptsächlich zur Einsortierung der Mails in Ordner und verändern/ergänzen von Header-Informationen.
/maildrop kann auch globale Filterregeln benutzen, besonders praktisch, wenn es als Standardauslieferungsmechanismus benutzt wird. Dann kann der Administrator Filterregeln vorgeben, z.B. Spam-Filter, Viren-Scanner etc.
Während Empfang
kann durch Filter geprüft werden, ob die Mail angenommen wird oder nicht. (In letzterem Fall schlägt für den Versender der Versand fehl.)
Man sollte darauf achten, dass die Filter möglichst resourcensparend sind und eine kurze Laufzeit haben. Sonst kann es passieren, dass Mails mit einem temporären Fehler abgewiesen werden.
/GlobalMailFilter: dabei wird jede Mail durch einen oder mehrere Filterprozesse geleitet, z.B. Spam-Filter, Virenscanner, Adressprüfung bei Relayservern etc.
über /etc/courier/enablefiltering kann eingestellt werden, ob nur Mail von extern (smtp) oder auch lokal erzeugte Mail gefiltert wird.
/LocalMailFilter: damit kann jeder lokale User (/maildrop)-Filterregeln anlegen, die Mails schon während des Empfangs durch courier-esmtpd filtern, d.h. man kann z.B. Spam-Mails direkt abweisen, für den Versender schlägt der Versand damit fehl.
Hierbei können keine externen Programme gestartet werden.
Das sieht dann im Ergebnis z.B. so aus:
$ telnet vlugnet.org smtp Trying 217.160.107.28... Connected to vlugnet.org (217.160.107.28). Escape character is '^]'. 220 vlugnet.org ESMTP helo localhost 250-vlugnet.org Ok. 250-STARTTLS 250-XVERP=Courier 250-XEXDATA 250-XSECURITY=NONE,STARTTLS 250-PIPELINING 250-8BITMIME 250-SIZE 250 DSN mail from: <user@example.com> 250 Ok. rcpt to: <ronny-pl20020203@vlugnet.org> 571 Delivery not authorized, message refused. quit 221 Bye. Connection closed by foreign host.
Virtuelle Domänen
Für virtuelle Domänen (virtual domains) gibt es mehrere Realisierungsmöglichkeiten, wobei man diese natürlich auch mischen kann:
Variante 1
Eintragen der domain in locals und erstellen des Alias @domain: user
- Beispiel
in locals: example.com
in aliases: @example.com: exampleuser
- Ergebnis
Mails an foo@example.com werden an exampleuser-foo ausgeliefert (was durch .courier-foo gesteuert werden kann)
Es existiert nur ein Account pro domain, dessen Mails man nur insgesamt abrufen kann (aber per getmail oder fetchmail wieder verteilen kann (das nennt man Multidrop-Mailbox)).
Variante 2
Eintragen der domain in hosteddomains und anlegen der (virtuellen) User user@domain
- Beispiel
in hosteddomains: example.com
- Ergebnis
Mails an foo@example.com werden an den User foo@example.com ausgeliefert. Wenn virtuelle Accounts genutzt werden, können sich alle User *@example.com ein Homeverzeichnis teilen (und trotzdem verschiedene Maildirs haben)
Für jeden User der domain existiert ein eigener (virtueller) Account, die Mails können somit für jeden User einzeln vom Server geholt werden.
Variante 3 (Erweiterung von Variante 2)
Eintragen der domain in hosteddomains und anlegen des Aliasuser alias@domain
- Beispiel
in hosteddomains: example.com
in z.B. userdb: alias@example.com ...
- Ergebnis
Wenn der User foo@example.com existiert, werden Mails an ihn direkt ausgeliefert. Alle anderen Mails an User *@example.com werden an alias@example.com zugestellt. alias@example.com ist also ein Auffangbecken für alle nicht explizit definierten User von example.com.
- Achtung
Für den Alias-User muss eine .courier-default Datei vorhanden sein.
Fragen
Frage: Wer hat denn Erfahrung mit Courier? Wir bauen in unserer Lug einen Server für Schulen (LinuxOnCD) und einer unserer nächsten Schritte ist das Thema Mailserver. Bisher haben wir an exim und uw-imapd gedacht. Dazu wollten wir uns noch was zum Thema Webmail suchen. Wir suchen generell eine Lösung, die vor allem so ausgereift ist, daß man sie fertig installiert einem Lehrer übergeben kann, ohne das der dauernd nachbessern muss (Also kein Bleeding-Edge-Schnickschnack, sondern solide Sachen). Das Ganze muss davor sicher sein, von Schülern gehackt zu werden, was wahrscheinlich zum härtesten gehört, was es an Sicherheitsanforderungen gibt.
Kann mir da jemand was empfehlen? Ist Courier die Lösung unserer Probleme?
-- ThomasBayen
Auf diesem Server, der auch das LinuxWiki bereitstellt, läuft ein (chrooted) /courier-imap mit tls. Ich hatte im Vorfeld einen Featurevergleich (theoretischer Natur) gemacht, über Google nach Erfahrungsberichten gesucht usw. und von cyrus, uw, courier schien der courier am besten für uns geeignet. Die Installation/Konfiguration hat BastianBlank gemacht. -- ThomasWaldmann 2002-07-06 15:06:07
Dieser Server hält seine komplette Mailaliases u.ä. im einem LDAP, auf das sowohl /courier-imap als auch Postfix zugreifen. Es gibt dabei sowohl normale Shelluser als auch User, die nur imap/pop3 zugang haben. -- BastianBlank 2002-07-19 12:12:38
Ich habe Courier (komplett) auf unserem neuen LugVaihingenEnz Server (vlugnet.org) laufen. Bisher passiert da zwar noch nicht sehr viel, so dass ich noch keinen umfassenden Erfahrungsbericht geben kann, aber ich kann dir erklären warum ich Courier einsetze (ich habe vorher immer qmail benutzt).
- courier hat ein sicheres design (ähnlich dem von qmail, aber wahrscheinlich performanter)
- ssl funktioniert ohne verrenkungen (bei qmail ungleich komplizierter)
- /courier-imap und /maildrop sind sehr verbreitet und haben einen guten ruf (bei leuten die auf zuverlässigkeit wert legen)
- ich hoffe einfach, dass die restlichen teile genauso gut sind (und da bin ich sehr zuversichtlich)
- bei imap führt kaum ein weg an /courier-imap vorbei, die zuverlässigkeit von maildirs ist einfach unschlagbar (geht zwar auch mit gepatchtem uw, hat mich aber nicht so überzeugt)
- die konfiguration ist relativ einfach (man sollte die installationsanleitung aber schon genau und der reihe nach lesen)
Update: der Server läuft jetzt schon einige Monate produktiv und ich bin immer noch von Courier begeistert. -- RonnyBuchmann 2003-08-05 15:25:23
Auf http://kleinbetrieb.biz läuft ein großer Courier mit Nutzerverwaltung für viele VHosts im LDAP und tls für Verschlüsselung zwischen Servern. Wer hier Fragen zur vereinfachten Verwaltung hat, kann mich fragen. -- MarcusWolschon 2006-04-10 18:22:23
Frage: Gibt es irgendwo ein ausführliches How-To zum Courier-Mailserver? Bei google und tdlp hab ich nichts gefunden.
Antwort: Die Installationsanleitung ist sehr ausführlich und im How-To Stil. Im Zweifel sollte man sich aber an die Manpages halten, die sind aktueller.