VxMail ist ein Satz von Programmen, die als Bestandteil eines Mail-Systems gedacht sind; es handelt sich um
VxMail ist kein eigenständiges Mail-System; es ist als Ergänzung zu Programmen wie Smail oder Sendmail gedacht; es soll die Verwaltung mehrerer Mail-Domains auf dem gleichen Rechner ermöglichen, so daß z.B.
nicht auf den gleichen Benutzer zeigen, obwohl sie auf dem selben Rechner liegen.
Um dies zu ermöglichen, muß man sich von der bei SMTP- und POP3-Servern üblichen Benutzeridentifikation durch das zugrundeliegende Betriebssystem lösen; stattdessen muß neben dem Benutzernamen jetzt auch der Domainteil E-Mail-Adresse zur eindeutigen Identifikation des jeweiligen Benutzers herangezogen werden. Zu diesem Zweck verwendet das VxMail-System eine eigene - vom zugrundeliegenden System unabhängige - Benutzerbeschreibung (im Moment in Form einer GDBM-Datenbank), in der die Vollständige E-Mail-Adresse zur Identifizierung eines Benutzers herangezogen werden kann.
Dieses Verfahren bringt jedoch einige kleinere Probleme mit sich; so sind POP3-fähige Benutzerprogramme nicht immer in der Lage, vollständige E-Mail-Adressen zur Benutzeridentifikation zu übertragen; ein krasses Beispiel hierfür ist der Netscape TM Navigator bzw. Communicator, welcher von einer Benutzeridentifikation, die ein @-Zeichen enthält, vor der Übertragung an den POP3-Server alles ab diesem @-Zeichen abschneidet. Um dieses Problem mit POP3-Benutzerprogrammen zu umgehen, gibt es zwei Möglichkeiten:
Im VxMail-System wurden beide Möglichkeiten realisiert.
Ein weiteres Problem besteht darin, daß in der POP3-Konfiguration der angegebene Name den Servers nicht unbedingt mehr mit der E-Mail-Domain, in der ein Benutzer steht, übereinstimmen muß. Um dieses Problem lösen zu können, muß Aufklärungsarbeit betrieben werden, d.h. der Service-Provider, der das VxMail-System verwendet, muß dafür Sorge tragen, daß seinen Kunden der richtige Name für die Benutzeridentifikation und den POP3-Server mitgeteilt wird.
Ein drittes Problem ergibt sich ebenfalls aus der Unabhängigkeit von POP3-Server und Domainteil in der Benutzeridentifikation; sollte sich ein Systemadministrator dafür entscheiden, eine Mail-Domain auf einen anderen Rechner auszulagern, so ändert sich für Benutzer innerhalb der entsprechenden Domain der Name des zu verwendenden POP3-Servers; um mit diesem Problem umgehen zu können, kann der Systemadministrator vorher alle Benutzer über den Umzug der Mail-Domain informieren; oder aber versuchen, das Mail-System zu veranlassen, dies zu tun.
Das VxMail-System ermöglicht eine Kombination beider Möglichkeiten; unter Zuhilfenahme sogenannter REDIRECTs können POP3-Anfragen an eine auf einen anderen Rechner verschobenen Mail-Domain an diesen weitergeleitet werden; außerdem kann der POP3-Server, wenn er entsprechend konfiguriert wurde, jedem Benutzer innerhalb der verschobenen Domain eine zusätzliche E-Mail unterschieben, mit der dieser darüber informiert werden kann, daß er die Einstellungen für seinen POP3-Service entsprechend abändern muß.
Sämtliche Programme des VxMail-Systems verwenden ein und dieselbe Konfigurationsdatei; diese heißt (üblicherweise) /etc/vxmail.conf. Es handelt sich hierbei um eine ASCII-Datei in der Konfigurationsoptionen in der Form
Konfigurationsoption Leerzeichen Wert
stehen. Hierbei ist Leerzeichen genau ein (!!!) Leerzeichen. Wert kann eine Zahl, eine Flagge (logisch oder auch mehrwertig) oder eine Zeichenkette sein - je nach der angegebenen Konfigurationsoption. Zeilen, die mit einem #-Zeichen beginnen sowie Leerzeilen werden ignoriert.
Im Moment gibt es folgende Konfigurationsoptionen:
Konfigurationsoption | mögl. Werte | Beschreibung |
|
---|---|---|---|
userdb | Pfadname | vollst. Pfadname der Benutzerbeschreibung bzw. Name der verwendeten Datenbank | |
dbif_module | Dateiname (ohne Pfad) eines existierenden Datenbankmoduls | ab der Version 1.44 bieten die VxMail-Programme die Möglichkeit, Datenbankschnittstellen dynamisch (während der Initialisierungsphase) zu laden; dies bedeutet, daß - bei passender Konfiguration vor der Übersetzung - Datenbankmodule durch Konfiguration und nicht mehr nur zur Übersetzungszeit ausgewählt werden können. Um Sicherheitsanforderungan zu genügen, können diese Module nur aus einem zur Übersetzungszeit festgelegten Verzeichnis (<prefix>/lib/VxMail) geladen werden. Darum darf hier auch nur der reine Dateiname des gewünschten Datenbankmoduls (ohne Pfadanteil, d.h. relativ zu diesem Verzeichnis) angegeben werden. | |
listdir | (absoluter) Pfadname eines Verzeichnisses | In diesem Verzeichnis legen die Datenbankmodule des VxMail-Systems ihre temporären Daten beim Zugriff auf größere Datenmengen aus der Datenbank (dbif_select) ab. Außerdem ist dies das Verzeichnis, in dem Mailinglisten (falls keine absolute Pfadangabe vorliegt (siehe LLTO)) gesucht werden. Drittens kann bei GDBM-artigen Datenbankmodulen hier (dies ist von der Konfiguration abhängig) die Benutzerdatenbank hier abgelegt sein. | |
errors | system, admin | Unzustellbare E-Mails sollen an den zu- grundeliegenden SMTP-Server (system) zurückgegeben oder an den Administrator der jeweiligen Domain (admin) bzw. den Administrator des VxMail-Systems gesendet werden. | |
fperm | Oktalzahl | Die Unix-Zugriffsrechte für die einzelnen Mail-Folder | |
biirm | yes, no | Soll - falls eine E-Mail wegen unzustellbar- keit an den Administrator der entsprechen- den Domain gesendet werden soll, in diese der komplette Mail-Text eingefügt werden oder nur der Kopf? | |
maxclients | Dezimalzahl | Maximale Anzahl an Benutzern, die gleichzeitig den POP3-Service nutzen können; diese Option ist nur dann von Bedeutung, wenn VxPOP als eigenständiges Serverprogramm laufen soll. | |
service | z.B. pop3 | Der (vom zugrundeliegenden System) vergebene Name des Ports, unter dem der POP3-Service zu erreichen ist. | |
vxuser | Name | Der Name des Unix-Benutzers unter dem VxDeliver und VxPOP laufen sollen, sowie der Benutzer, dem die Mail-Folder zugeordnet werden sollen. | |
vxgroup | Name | Der Name der Unix-Gruppe, unter der VxDeliver und VxPOP laufen sollen, sowie die Gruppe, der alle Mail-Folder zugeordnet werden sollen. | |
msg_firstline | Muster | Eines der beiden Muster, an denen VxConv Anfang und Ende einer E-Mail innerhalb eines Folders erkennt; das andere Muster steht unter msg_lastline | |
msg_lastline | Muster | - siehe msg_firstline | |
sysauth | yes, no | Soll die Benutzeridentifikation des Systems zur Erkennung von Mail-Foldern, die nicht vom VxMail-System verwaltet werden, herangezogen werden? | |
check_size | Dezimalzahl (evtl. mit abschließendem K oder M | Die Maximalgröße, die eine E-Mail haben darf; falls ein K am Ende steht, dann wird diese Zahl mit 1024 multipliziert (Kbytes), für ein abschließendes M mit 1048576 (Mbytes). | |
check_days | Dezimalzahl | Die Maximale Zahl an Tagen, die eine Mail aufgehoben wird. | |
dsizecheck | yes, no | Soll bereits VxDeliver eine Größenüberprüfung einer ankommenden E-Mail vornehmen oder nicht? | |
compression | yes, no | Sollen E-Mails komprimiert abgelegt werden oder nicht? (Diese Option wird zur Zeit noch nicht verwendet, da Kompression noch nicht implementiert ist.) | |
dbtype | hash, btree | Der Name der verwendeten Datenbank. (Nur für DB1/DB2 interessant; ich rate davon ab, diese Option zu verwenden, da ich sie - in den neuen Versionen von VxMail durch ein entsprechendes Datenbankmodul ersetzen werde.) | |
msg_scantype | regex, prefix+empty, prefix+prefix, prefix, prefixonly | Diese Option legt fest, wie VxPOP und VxConv Anfang und Ende
jeder E-Mail innerhalb des Folders finden sollen; hierbei steht
|
|
lcuser | yes, no | der Benutzername (der Teil einer E-Mail-Adresse vor dem `@') soll in Kleinschreibung umgewandelt werden, bevor der betreffende Benutzer in der Datenbank gesucht wird. | |
lcdomain | yes, no | der Domainname (der Teil einer E-Mail-Adresse hinter dem `@') soll in Kleinschreibung umgewandelt werden, bevor der betreffende Benutzer in der Datenbank gesucht wird. | |
maxlevel | eine (kleine) ganze Zahl | die maximale Tiefe, die eine Verschachtelung von LLTO-Umleitungen haben darf; diese Option ist im wesentlichen dazu da, rekursive Verweise zu vermeiden. | |
rejverb | yes, no | Wenn E-Mails während der Auslieferung durch VxDeliver abgewiesen werden oder sonst irgendein Fehler auftritt, dann kann die eigentliche Ursache als Fehlermeldung über die Standardfehlerausgabe an den SMTP-Server zurückgereicht werden (yes) oder nicht (no). | |
dracauth | yes, no | Diese Option ist nur dann relevant, wenn vor der Übersetzung des VxMail-Systems die Unterstützung des Dynamic Relay Authentication Control-Protokolls aktiviert wurde. Mit diesem Protokoll wird die verzögerte Auslieferung von E-Mails an einen anderen SMTP-Server durch den lokalen SMTP-Server über eine dynamische vergebene IP-Adresse (z.B. bei Einwahlverbindungen) möglich. Näheres hierzu kann unter http://mail.cc.umanitoba.ca/drac/ nachgeschlagen werden. | |
bsmtp_nodomain | yes, no | Das VxMail-System (speziell: VxPOP) bietet seit der Version 1.41 die verzögerte Auslieferung von E-Mails an einen SMT-Server über eine dynamische vergebene IP-Adresse (bei Einwahlverbindungen) mittels eines eigenen Protokolls an. Hierbei identifiziert sich der SMTP-Server, der die gespeicherten E-Mails empfangen möchte, per POP3. War die Identifikation erfolgreich, dann überträgt VxPOP die gespeicherten E-Mails per SMTP an die aus der POP3-Verbindung gewonnene IP-Adresse. Mit dieser Option kann entschieden werden, ob die vollständigen E-Mail-Adressen der Empfänger (no) oder nur die Benutzernamen (yes) an den empfangenden SMTP-Server weitergereicht werden sollen. (Dies betrifft nur die für SMTP-Übertragung benötigten Adressen; der Kopf der jeweiligen E-Mails wird nicht verändert.) | |
iu_receives | yes, no | soll ein gesperrter Benutzer (INVALID siehe unten) trotzdem E-Mails empfangen können (yes) oder nicht (no). Abholung von E-Mails ist bei gesperrten Benutzern trotzdem nicht möglich, da dies nur die lokale Auslieferung (VxDeliver) und nicht die Abholung (VxPOP) betrifft. | |
bsmtp_timeout | Zeitwert (in der Form DdHhMmSs oder H:M:S) | DIe Zeit, die eine BSMTP-Verbindung maximal bestehen soll, wenn der empfangende SMTP-Server nicht antwortet. | |
tmpdir | (absolute) Pfadangabe | der Pfadname eines Verzeichnisses, dem die von VxDeliver und VxPOP benötigten temporären Dateien abgelegt werden sollen. | |
error_sender | Ein Text, der eine in < und > eingeschlossene E-Mail-Adresse enthalten sollte | Die Adresse, die im Kopf einer E-Mail mit einer Fehlermeldung (wie sie in den Foldern der Default-Administratoren der einzelnen Mail-Domains stehen) als FROM: bzw. Rückkehradresse stehen soll. | |
qmbox | Text | - momentan nicht von Bedeutung - | |
redir_info | Pfadname | Der vollst. Pfadname der Textdatei, deren Inhalt an die Benutzer einer auf einen anderen Rechner verschobenen Domain als zusätzliche Mail untergeschoben werden soll. |
Dies ist jedoch nur die Konfiguration für alle Programme; die Konfiguration der einzelnen Benutzer, Domains, IP->Domain-Übersetzungen und Umleitungen geschieht mit Hilfe der Benutzerbeschreibung/Datenbank.
Die Benutzerbeschreibung bzw. -datenbank des VxMail-Systems kann mit Hilfe des beiliegenden Programmes VxMkDB angelegt bzw. werden. Dazu muß diesem Programm eine Eingabedatei in einem bestimmten Format übergeben werden. Dieses Format ist (im wesentlichen) Zeilenorientiert, d.h. pro Eintrag in der Benutzerbeschreibung/-datenbank steht ein Befehl in der Eingabedatei, der diesen erzeugt. Die Eingabedatei kann (grob) in die Abschnitte Systemeinstellungen, Domaindefinitionen, Übersetzungen, Mailsys-Defs eingeteilt werden. Hier nun eine Kurzbeschreibung der in dem jeweiligen Abschnitt mglichen Befehle:
Mit Domaindefinitionen werden E-Mail-Domains und Benutzer festgelegt.
Wird userlimit nicht angegeben, dann hat die Domain keine Beschränkung in der Benutzerzahl.
Die letzte Variante dient einer verzögerten Übertragung von E-Mails mittels SMTP. Dazu erfolgt zunächst eine normale POP3-Authentifikation; der POP3-Server vxpop liefert als Ergebnis in diesem immer eine leere Liste von E-Mails zurück, stößt jedoch gleichzeitig die Übertragung der (im BSMTP-Format) im Folder bsmtp-folder stehenden E-Mails an den durch die POP3-Verbindung festgelegten entfernten Rechner.
Außerdem gibt es eine spezielle Variante für diesen Befehl:
USER ``<OTHER>'' LLTO ``...''
. Mit dem Namen `<OTHER>' wird ein spezieller Benutzereintrag festgelegt, der alle E-Mails erhalten soll, die als Adressaten Benutzer enthalten, die innerhalb der jeweiligen Domain nicht existieren.
Für alle Löschbefehle gilt:
Anstatt DELETE kann auch das Wort NO verwendet werden; außerdem kann der entsprechende Befehl (z.B. REDIRECT) auch direkt hinter (ohne trennendes Leerzeichen) das NO gesetzt werden.