PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mailserver - Übergabe von mails an postfix



Takeshi
03.10.08, 12:37
Hallo,
bin gerade dabei, meinen Debian-Server einzurichten. Dabei möchte ich folgende Programme verwenden, um einen mailserver zu bauen:
postfix, cyrus, fetchmail, procmail, postfix

Habe mich schon durch ellenlange Howtos geschlagen und habe bereits cyrus zum Laufen gebracht und kann auch von einem anderen PC mit kmail auf den account zugreifen. Bringt mir nur nichts, da das in der "etc/imapd.conf" definierte Verzeichnis für die mails "/var/spool/cyrus/mail" nicht mit mails durch postfix gefüttert wird.

So wie ich die Dinge verstehe, hole ich mit fetchmail die mails ab, diese werden dann an postfix weiter gereicht und in die entsprechenden Postfächer sortiert. Hier kommt aber schon mein Problem, denn fetchmail reicht die mails nicht richtig weiter, oder procmail sortiert diese falsch ein.
Die Konfiguration soll so aussehen, dass die mails in dem Verzeichnis "/var/spool/cyrus/mail" landen. Dort gibt es dann ja die Sortierung nach den Buchstaben des Benutzernamens, und dort dann wiederum den vollständigen Benutzernamen. Bei dem Benutzer MAILUSER wäre das Verzeichnis also "var/spool/cyrus/mail/m/user/mailuser/". Leider werden die mails aber nicht dort abgeliefert, sondern landen in "/var/spool/mail/mailuser".
Bis jetzt rufe ich die mails noch aus Testzwecken per Hand mit


fetchmail -v -a -p POP3 -k -u%% --ssl -u <googlemailaccountname> -m procmail smtp.googlemail.com

ab, was ja meine mails von fetchmail an procmail weiter reichen sollte.

Welche Einstellung muss ich in der /etc/procmailrc - welche noch vollkommen leer ist - vornehmen, damit die mails in o.g. Ordner landen?

In der /etc/postfix/main.cf habe ich cyrus und procmail wie folgt drin stehen


mailbox_transport = cyrus
mailbox_command = procmail -t -a "$EXTENSION"


Danke schon mal für eure Hilfe!!

Roger Wilco
03.10.08, 13:42
Übergib die Mails von fetchmail direkt an cyrdeliver. Du musst die Mails dann nicht mehr über Postfix leiten.
Außerdem musst du dich für mailbox_transport oder mailbox_command in der main.cf entscheiden. Beide gleichzeitig geht nicht bzw. es gibt eine implizite Priorisierung, siehe postconf(5).

Takeshi
03.10.08, 14:48
Danke für den Hinweis! Lasse ich das "-m postfix" aus der Befehlskette weg und entferne den Eintrag für procmail aus der main.cf, so werden die mails ausgelliefert! Mittlerweile habe ich auch gerade gelesen, dass sich procmail für die Filterung der mails bei cyrus nicht wirklich eignet und man lieber auf sieve zurück greifen soll. Habe daher beschlossen, procmail nicht mehr zu verwenden.

Bin jedoch beim Thema mailserver absoluter Anfänger, daher meine vielleicht trivialen Fragen.

Jetzt möchte ich das ganze gerne automatisch per cron abholen. Dafür habe ich in der /etc/fetchmailrc mein Konto eingetragen:


poll "pop.gmail.com" protocol POP3 :
with protocol POP3
user googlemailaccount password PASSWORD is mailuser here
with ssl


Dieser Eintrag müsste so funktionieren, da ich bisher auf meinem alten gentoo-PC die mails ebenfalls so abgeholt und an cyrus weiter geleitet habe. Nur werden jetzt die mails nicht mehr automatisch abgeholt - obwohl ich in der crontab folgendes stehen habe:


*/1 * * * * root /usr/bin/fetchmail -a -v >> /var/log/fetchmail 2>&1 && /usr/bin/mailq -q

Hier sehe ich folgende Fehlermeldung in der /var/log/fetchmail


fetchmail: WARNUNG: Vom Betrieb mit root-Rechten wird abgeraten.
fetchmail: es wurden keine Mailserver spezifiziert

Ich möchte doch hier keinen einzelnen Mailserver angeben, sondern alle Mailserver aus der fetchmailrc sollen abgearbeitet werden. Wie schaffe ich das? Habe wie gesagt die gleichen Einstellungen in der fetchmailrc und der crontab auf meinem gentoo-Rechner und da läuft es erfolgreich.

Roger Wilco
03.10.08, 14:53
fetchmail kann auch als Daemon laufen, d. h. du müsstest Cron gar nicht benutzen. Außerdem solltest du die Konfigurationsdatei explizit bei deinem fetchmail-Aufruf angeben.

Takeshi
03.10.08, 15:24
Okay, vieln Dank! Habe jetzt fetchmail als daemon am laufen. Jedoch noch ein kleines Problem bei der Protokollierung: ich möchte die /var/log/fetchmail als logfile benutzen. Dummerweise kommt hier folgende Fehlermeldung


# /etc/init.d/fetchmail start
Starting mail retriever agent: fetchmailfetchmail: Warnung: syslog UND logfile sind gesetzt.
Prüfen sie beide auf Protokolleinträge!

Hier mal meine fetchmailrc


# fetchmail daemon #########################
set daemon 60 # Pool every minute
set logfile /var/log/fetchmail
set postmaster root

set no bouncemail # avoid loss on 4xx errors
# on the other hand, 5xx errors get
# more dangerous...
defaults:
timeout 300
antispam -1
batchlimit 100


Wenn ich statt der /var/log/syslog mit "set syslog" in der syslog protokollieren würde, dann hätte ich keine Probleme. Aber das möchte ich ja nicht - ich hätte gerne die logfiles übersichtilich getrennt.

Roger Wilco
03.10.08, 15:26
set no syslog
http://www.catb.org/~esr/fetchmail/fetchmail-man.html#20

Bist du eigentlich sicher, dass du die E-Mails jede Minute abholen willst? Manche Provider blocken bei derart exzessivem Verhalten...

Takeshi
03.10.08, 15:55
gmail nicht ;-)
Hab das ja auch nur als Test drin, denn wenn ich bei jeder versendeten mail 5 min warte, dann sitze ich nächsten Freitag noch hier...

Habe noch ein (hoffentlich letztes) kleines Problem.
Hab mir jetzt von meinem alten PC die mailbox auf den neuen Server kopiert und dabei cyrus als Besitzer und mail als Gruppe angegeben. Nun kann ich aber mit kmail die mails nicht mehr abrufen - erhalte die Fehlermeldung


Error while reading folder inbox on the server:
Unable to open folder INBOX. The server replied: System I/O error

Scheint einfach ein Problem mit den Berechtigungen auf dem FS zu sein, denn wenn ich die Partition, auf der sich meine mailordner unmounte und somit wieder auf den alten Ordner mit den beim Testlauf erstellten mails zugreife, funktioniert wieder alles.
Finde den Fehler jedoch nicht, da ich m.E. überall die gleichen Rechte gesetzt habe.

Roger Wilco
03.10.08, 17:05
Kopiere die Rechte doch einfach mit. Du musst auch aufpassen, wenn die UID/GID der Benutzer und Gruppen nicht mit dem anderen System übereinstimmt und du nur die UID/GID prüfst.

Takeshi
03.10.08, 17:41
Okay, super. Hat (teilweise) geklappt. Nun stehe ich aber vor dem wirklich letzten Problem. Es wurden keine Unterverzeichnisse angezeigt, daher habe ich mal per kmail das Verzeichnis "Test" angelegt, was mir auch in cyrus mit lm angezeigt wird.Dummerweise sind alle anderen Unterverzeichnisse nicht sichtbar. Also hab ich mal testweise mails aus einem Unterverzeichnis in Test kopiert (in der shell), wobei ich diese aber auch nicht gesehen habe. Dann mal mit kmail aus der inbox eine mail verschoben - und diese kann ich sehen. Dummerweise habe ich dann den Fehler gemacht und mit rm den Inhalt (also auch die Dateien cyrus.cache, cyrus.header und cyrus.index) gelöscht. Nun werde ich die mailbox nicht mehr los. Ein "dm mailbox.Test" sagt mir "permission denied" und wenn ich die Berechtigungen setzen möchte, erhalte ich "setaclmailbox: cyrus: lrswipcda: System I/O error". Auch das Löschen der gesamten übergeordneten mailbox (also der des Benutzers) lässt diesen Unterordner zurück. Wie werde ich diesen wieder los - und wie kann ich danach auf meine Unterordner zugreifen?

Roger Wilco
03.10.08, 19:14
Schau in der Manpage von Cyrus (bzw. cyradm) mal nach reconstruct. Und bei Cyrus IMAP würde ich es vermeiden, irgendetwas einfach von Hand zu verschieben, zu kopieren oder zu löschen.

Takeshi
03.10.08, 19:41
Super, danke!! Was wäre ich nur ohne Dich :p Der Ordner ist weg. Nun bleibt als letztes Problem nur noch, dass die Unterordner nicht erkannt werden. Dies ist leider extrem wichtig, da ich Bewerbungen/Adressen usw. in diesen Ordnern liegen habe. Die Ordner werden - warum auch immer - einfach nicht erkannt. Das ist natürlich sehr komisch, da ja der "Hauptordner" gefunden wird. Hast Du hier vielleicht einen Vorschlag?

Roger Wilco
04.10.08, 09:50
Hast du schon probiert bei 'reconstruct' den qualifizierten "Pfad" (also z. B. "user.deinbenutzer.Bewerbungen") anzugeben?

Takeshi
04.10.08, 11:21
Das hat auch nichts gebracht. Habe jetzt aber eine Lösung gefunden. Konnte in kmail sowohl auf das alte, als auch das neue IMAP-Konto zugreifen und habe die mails einfach verschoben.

Somit ist der Thread wohl erledigt. Nochmals vielen Dank für Deine Hilfe und ein schönes WE.

Gruß