E-Mail von Procmail nach Cyrus-imap
Hallo, ich versuche seit Tagen über eine ~/.procmairc Filterregel E-Mail in ein Cyrus-imap Verzeichnis zu kopieren. Allerdings bekomme ich immer wieder die Fehlermeldung: "couldn't connect to lmtpd: Permission denied". Hier ein Auszug aus der ~/.procmailrc:
LOGFILE=/home/michael/procmail.log LOGABSTRACT=all VERBOSE=on DELIVER="/usr/lib/cyrus/bin/deliver"
:0fw | /usr/bin/spamassassin
:0 c | $DELIVER -e -a michael -m user.michael
In /etc/imapd.conf und in /etc/cyrus.conf habe ich jeweils lmtpsocket:/var/lib/imap/socket/lmtp eingetragen. Der Ordner /var/spool/imap/user/michael und die darunterliegenden Files/Ordner gehören allerdings cyrus:mail mit den Rechten 700. Ich habe auch schon versucht die Ordner michael:users zu geben. Allerdings erhalte ich dann einen I/O-Error vom MUA und ich kann nicht mehr auf die Ordner vom MUA aus zugreifen. Ich bin schon halb am verzweifeln! Ich weiß wirklich nicht, an welcher Stelle ich noch drehen soll... mfg <michael>
Am Samstag, 7. Mai 2005 19:06 schrieb Michael Uhl:
ich versuche seit Tagen über eine ~/.procmairc Filterregel E-Mail in ein Cyrus-imap Verzeichnis zu kopieren. Allerdings bekomme ich immer wieder die Fehlermeldung: "couldn't connect to lmtpd: Permission denied".
Hier ein Auszug aus der ~/.procmailrc:
LOGFILE=/home/michael/procmail.log LOGABSTRACT=all VERBOSE=on DELIVER="/usr/lib/cyrus/bin/deliver"
:0fw : | /usr/bin/spamassassin | :0 c : | $DELIVER -e -a michael -m user.michael
In /etc/imapd.conf und in /etc/cyrus.conf habe ich jeweils lmtpsocket:/var/lib/imap/socket/lmtp eingetragen.
Du musst deliver das suid-Bit Spendieren und nach jedem Update auch darauf achten, dass es auch so bleibt.
Der Ordner /var/spool/imap/user/michael und die darunterliegenden Files/Ordner gehören allerdings cyrus:mail mit den Rechten 700. Ich habe auch schon versucht die Ordner michael:users zu geben. Allerdings erhalte ich dann einen I/O-Error vom MUA und ich kann nicht mehr auf die Ordner vom MUA aus zugreifen.
Yep, die Dateien müssen cyrus gehören.
Ich bin schon halb am verzweifeln! Ich weiß wirklich nicht, an welcher Stelle ich noch drehen soll...
-- Andreas
Hallo Andreas, Am 07.05.2005 19:28, Andreas Winkelmann schrieb:
Am Samstag, 7. Mai 2005 19:06 schrieb Michael Uhl:
ich versuche seit Tagen über eine ~/.procmairc Filterregel E-Mail in ein Cyrus-imap Verzeichnis zu kopieren. Allerdings bekomme ich immer wieder die Fehlermeldung: "couldn't connect to lmtpd: Permission denied".
[...]
Du musst deliver das suid-Bit Spendieren und nach jedem Update auch darauf achten, dass es auch so bleibt.
Vielen Dank für die Hilfe! Allerdings war das lediglich der erste Teil meiner Problemlösung. Anschließend wurden die Mails immer noch nicht von cyrdeliver ausgeliefert. Stundenlanges "googlen" und unzähliges testen von Konfigurationen brachte anschließend die (endgültige) Lösung: In der .procmailrc fehlte noch eine entscheidende Regel: :0fw | formail -f -I "From " Warum man das "From " entfernen muss habe ich allerdings nirgends erfahren können. Nur das es sein muss... Nehme ich allerdings eine "alte" Nachricht und speichere sie aus dem MUA heraus ab, und rufe anschließend per Hand cyrdeliver auf, so funktioniert dies auch ohne vorherige Behandlung mit formail. Nur aus procmail heraus nicht... Jetzt funktioniert alles wunderbar. Danke nochmal für den Hinweis! mfg <michael>
Hallo, Michael Uhl wrote:
...
In der .procmailrc fehlte noch eine entscheidende Regel: :0fw | formail -f -I "From "
Warum man das "From " entfernen muss habe ich allerdings nirgends erfahren können.
Die Zeile, die mit "From " beginnt, d.h. *ohne* Doppelpunkt nach dem From ist keine normale (gültige) Headerzeile während des Mailtransports. Vielmehr ist sie die erste Zeile einer Mail, welche aus einer Mailbox im Berkley Mail Format (auch bekannt als mbox bzw. Unix- bzw. /var/mail Format) stammt. Kopierst du aus einem "alten" Mailbestand, der im mbox Format vorliegt zum Imap Server ? Wenn ja, dann ist diese zusätzliche Zeile bei der Speicherung hinzugefügt worden.
Nur das es sein muss... Eben.
Nehme ich allerdings eine "alte" Nachricht und speichere sie aus dem MUA heraus ab, und rufe Was heisst alte Nachricht ? Eine die schon auf dem Imapserver lag ?
anschließend per Hand cyrdeliver auf, so funktioniert dies auch ohne vorherige Behandlung mit formail. Wenn sie vom Imapserver kam ist es klar, denn der fügt die zusätzliche "From " Zeile nicht ein.
Thomas.
Hallo, Am 10.05.2005 16:54, Thomas Klopf schrieb:
Hallo,
Michael Uhl wrote:
In der .procmailrc fehlte noch eine entscheidende Regel: :0fw | formail -f -I "From "
Warum man das "From " entfernen muss habe ich allerdings nirgends erfahren können.
Die Zeile, die mit "From " beginnt, d.h. *ohne* Doppelpunkt nach dem From ist keine normale (gültige) Headerzeile während des Mailtransports. Vielmehr ist sie die erste Zeile einer Mail, welche aus einer Mailbox im Berkley Mail Format (auch bekannt als mbox bzw. Unix- bzw. /var/mail Format) stammt.
Vielen Dank für die Info! War mir so nicht klar!
Kopierst du aus einem "alten" Mailbestand, der im mbox Format vorliegt zum Imap Server ? Wenn ja, dann ist diese zusätzliche Zeile bei der Speicherung hinzugefügt worden.
Ich kopiere zwar (noch nicht) alte E-Mail auf den Server...
Nehme ich allerdings eine "alte" Nachricht und speichere sie aus dem MUA heraus ab, und rufe Was heisst alte Nachricht ? Eine die schon auf dem Imapserver lag?
...aber zu Testzwecken habe ich per Hand E-Mail aus Evolution heraus gespeichert (liegt noch auf einem Imap-Server im Internet) und mit cyrdeliver "verschickt". Dies hat eben funktioniert. Mail, die ich allerdings mit fetchmail von pop3 abhole und über procmail/cyrdeliver zum Imap verschiebe kommt ohne "formail..." nicht an.
Wenn sie vom Imapserver kam ist es klar, denn der fügt die zusätzliche "From " Zeile nicht ein.
Das habe ich mir gerade auch nochmal angesehen. "Alte" E-Mail von Evolution/Thunderbird die bisher mittels qpopper "zugestellt" wurde enhält die "From " Zeile (ist schließlich im mbox-Format gespeichert), E-Mail vom Imap (egal, welcher) nicht. Vielen Dank nochmal für die Info! Wieder dazu gelernt! Danke! mfg <michael>
Am Samstag, 7. Mai 2005 19:06 schrieb Michael Uhl:
ich versuche seit Tagen über eine ~/.procmairc Filterregel E-Mail in ein Cyrus-imap Verzeichnis zu kopieren. Allerdings bekomme ich immer wieder die Fehlermeldung: "couldn't connect to lmtpd: Permission denied".
Wenn Du es Dir einfach machen willst, nimm Sieve anstelle von Procmail. Sieve arbeitet direkt im Cyrus Server, die Mails können also einfach an Cyrus weitergeleitet werden (z.B. bei Postfix-Konfiguration über YaST). Funktioniert hier seit längerem problemlos. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Hallo Manfred, Am 07.05.2005 22:19, Manfred Tremmel schrieb:
Am Samstag, 7. Mai 2005 19:06 schrieb Michael Uhl:
ich versuche seit Tagen über eine ~/.procmairc Filterregel E-Mail in ein Cyrus-imap Verzeichnis zu kopieren. [...]
Wenn Du es Dir einfach machen willst, nimm Sieve anstelle von Procmail. [...]
Das habe ich mir anfangs auch überlegt. Allerdings haben sich mit der Zeit ziemlich viele procmail-Filterregeln angesammelt. Von userspezifischer Spamfilterung bis hin zu "Archivierung". Diese Regeln wollte ich nicht aufgeben. mfg <michael>
participants (4)
-
Andreas Winkelmann
-
Manfred Tremmel
-
Michael Uhl
-
Thomas Klopf