Page tree

Wenn sie zu dieser Seite Bemerkungen haben klicken sie bitte hier: Kontaktformular

Skip to end of metadata
Go to start of metadata

Hilfreicher Artikel dazu: http://www.firstpr.com.au/web-mail/mta-integration-01/

Der Artikel gilt für SuSE Linux Version 12.2 
Bei Ubuntu kann man sich das kompilieren des maildrop sparen und mit "apt-get install maildrop" direkt die Installation durchführen.
In diesem Fall muss man in /etc/maildroprc den Zielpfad für das Userpostfach angeben:

DEFAULT="$HOME/Maildir"

Inhalt:

Allgemeines

In einer bestehenden postfix-Installation soll die Verwendung von imap-Postfächern ermöglicht werden.

Gleichzeitig sollen die Mails nicht mehr lokal an /var/spool/mail/USERNAME geleifert werden, sondern nach dem Maildirformat in das Verzeichnis $HOME/Maildir
Doku zu Maildir findet man bei Wikipedia: http://de.wikipedia.org/wiki/Maildir 

Installation courier, fam und gamin

# Installation courier incl. Authentifizierungsbibliothek
# Soll die Authentifizierung gegen eine Datenbank erfolgen sind weitere Pakete erforderlich.
# In diesem Beispiel wird gegen die "normalen" User des Systems auhentifiziert (die in /etc/passwd definiert sind) 
# rpm -qa|grep -i courier
courier-imap-4.9.3-6.1.3.i586
courier-authlib-0.63.0-16.1.3.i586
# rpm -qa|grep fam
fam-server-2.7.0-159.2.1.i586
libfam0-2.7.0-159.2.1.i586
fam-2.7.0-159.2.1.i586
# rpm -qa|grep gamin
gamin-server-0.1.10-2.1.2.i586
#

Danach sind folgende Dateien vorhanden:

# l /etc/init.d/*courier*
-rwxr-xr-x 1 root root 3774 Jul 16  2012 /etc/init.d/courier-authdaemon*
-rwxr-xr-x 1 root root 3202 Jul 16  2012 /etc/init.d/courier-imap*
-rwxr-xr-x 1 root root 3576 Jul 16  2012 /etc/init.d/courier-imap-ssl*
-rwxr-xr-x 1 root root 3152 Jul 16  2012 /etc/init.d/courier-pop*
-rwxr-xr-x 1 root root 3604 Jul 16  2012 /etc/init.d/courier-pop-ssl*
#

Evtl. wird beim Start des imap-ssl Dienstes die folgende Meldung angezeigt:

Failed to create cache file: maildirwatch (USER)

In diesem Fall:

# In der Datei /etc/courier/imapd den folgenden Wert setzen:
IMAP_USELOCKS=0
#Anschließend ggf. courier-imap-ssl Dienst neu starten

 

Es wird empfohlen nur die ssl-Dienste zu verwenden. Für diese Dienste wird ein ssl-Zertifikat benötigt, ggf. kann man mit der folgenden Anleitung ein eigenes Zertifkat generieren: Installation IMAP Mailprotokoll

Nach dem Start der Dienste courier-authdaemon und courier-imap-ssl sollte der einfache Zugriff mit einem Mailclient über imap mit ssl möglich sein.
Benutzername/Kennwort muss ein auf dem Server bekannter Benutzer sein.

Allerdings muss man näher betrachten wo bei diesem User die Mails gespeichert sind.
In der Standardkonfiguration werden die Mails von Postfix über den Standard-MTA (Mail Transfer Agent) in /var/spool/mail/USERNAME gespeichert.
Nachdem der User die Mails gelesen hat befinden sie sich in seinem HOME-Verzeichnis unter $HOME/mbox
Daher nennt man diese Art der Speicherung auch Mailbox-Format (alles in einer Datei) siehe auch: http://de.wikipedia.org/wiki/Mbox

Dem gegenüber steht das sogenannte Maildir- Format, das eine Ordnerstruktur bereitstellt. Siehe auch http://de.wikipedia.org/wiki/Maildir

In diesem Beispiel entscheiden wir uns für das Maildir-Konzept.

Damit ergibt sich folgende Struktur:

postfix(Nimmt die Mail an) ==> Maildrop(liefert die Mail in die Maildir-Verzeichnisstruktur) ==> Courier-imap-ssl(Stellt diese Ordner nach der Authentifizierung dem Mailclient zur Verfügung)

Installation Maildrop als Mailtransfer Agent (MTA)

Leider habe ich Maildrop für opensuse 12.2 nicht als rpm gefunden so dass es selbst compiliert werden muss. (Compiler erforderlich und das make-Utility)

Zusätzlich ist auch noch pcre (Perl Compatible Regular Expressions) (http://www.pcre.orgerforderlich:

rpm -qa|grep -i pcre
libpcre1-8.30-3.1.2.i586
libpcreposix0-8.30-3.1.2.i586
pcre-devel-8.30-3.1.2.i586
libpcrecpp0-8.30-3.1.2.i586

 

Download Maildrop: http://www.courier-mta.org/download.php#maildrop

Nach dem download entpacken, configurieren und compilieren/installieren:

cd ~/install/maildrop-2.6.0
./configure
vi maildrop/config.h (Ändern: #define DEFAULT_DEF "./Maildir") das bewirkt, dass die Mails für jeden User in das Verzeichnis $HOME/Maildir geliefert werden.
make
make install
make install-strip
make install-man 

Danach sollte das Maildrop-Programm bereitstehen in /usr/local/bin/maildrop

Konfiguration postfix um maildrop zu verwenden:

/etc/postfix/main.cf
local_destination_concurrency_limit=1
mailbox_command = /usr/local/bin/maildrop 

und in

/etc/postfix/master.cf
# maildrop. See the Postfix MAILDROP_README file for details.
# Also specify in main.cf: maildrop_destination_recipient_limit=1
#
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

 

Danach noch den postfix neu starten damit die Konfiguration aktualisiert wird.

Installation je Benutzer:

Für jeden User müssen nun noch die Maildir-Verzeichnisse im HOME-Verzeichnis angelegt werden.

Als User in seinem HOME-Verzeichnis ausführen (nicht als root):

# Der folgende Befehl legt das Verzeichnis Maildir und die Unterordner cur, new und tmp an
maildirmake ./Maildir
# Ob der Mailclient die folgenden Ordner verwendet kann am jeweiligen Client konfiguriert werden.
maildirmake -f Drafts ./Maildir
maildirmake -f Templates ./Maildir
maildirmake -f Trash ./Maildir
maildirmake -f Sent ./Maildir 

Fertig, muss noch getestet werden.
Evtl. logfile lesen:

less /var/log/mail

Weiterleiten von lokal gespeicherten Mails in das Maildirformat

Die lokal zugestellten Mails findet man i.d. Regel in der Datei /var/spool/mail/USERNAME

Alle Mails sind in einer einzigen Datei, müssen aber für die Weiterleitung so geändert werden, dass jede Mail in einer eigenen Datei gespeichert ist.
Eine neue Mail beginnt jeweils mit der folgende Zeile

From <Absendeadresse> <Zeitstempel> 

Wenn man den Editor "vi" nicht zu seinen Freunden zählt wäre Möglichkeit, die Maildatei mit dem Kommando "unix2dos" in das dos-Dateiformat zu verwandeln und dann auf einen Windowsrechner zu kopieren. (z.B. mit winscp)
Dort kann man das mit dem Windowseditor erledigen und die vielen Dateien wieder auf den UNIX-Server kopieren. Rückverwandeln in das UNIX-Format kann man dann mit dem Kommando "dos2unix" 

Mit dem vi geht man so vor:

#Datei öffnen
vi /var/spool/mail/USERNAME
#An das Ende der Datei gehen
G
#Letzte Textstelle From suchen
?From 
#Das sollte jetzt der Beginn der letzten Mail in dieser Datei sein
#Wenn nicht dann Weitersuchen mit
n
#Wenn der Beginn der letzten Mail erreicht ist diese in die benannte Zwischenablage "e" verschieben:
"edG
#Datei speichern
:w
#Neue Datei beginnen:
:n mail1
#Inhalt der Zwichenablage "e" in die Datei einfügen
"eP
#Datei speichern
:w
#Wieder zurück zur Maildatei
:e#
#Dies mit allen Mails wiederholen 

Die auf diesem Weg erzeugten Dateien mit maildrop liefern lassen
Voraussetzung ist, dass maildrop so konfiguriert ist, dass es die Mails nach $HOME/Maildir liefert.

maildrop -d USERNAME <mail1