PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fetchmail reicht Mails nicht an Cyrus weiter



der_dicke_alex
09.08.06, 09:57
Hallo zusammen.

Folgende Konstellation:
Ein Ubuntu 6.10 Server auf dem zuerst nur Fetchmail und Cyrus/Imapd installiert wurde.

Der Cyrus funktioniert auch. Ich kann per Thunderbird darauf zugreifen und Mails speicher/verschieben/etc.

Wenn ich aber mit Fetchmail nun meine Konten abgrase, holt es auch die Mails ohne Fehler ab. Diese kommen aber nicht im Cyrus an.

Was kann das sein?

Gruß

Alex

drcux
09.08.06, 10:33
fetchmail übergibt an postfix, dieser wiederum dann an cyrus.

Was sagen denn die Log-Dateien dazu?

der_dicke_alex
09.08.06, 11:00
Auszug aus Syslog:


Aug 9 13:09:30 mailserver fetchmail[14917]: Nachricht xxx@x.de:96 von 99 wird gelesen (3079 Bytes)
Aug 9 13:09:30 mailserver postfix/smtpd[16527]: C4329824261: client=localhost[127.0.0.1]
Aug 9 13:09:30 mailserver postfix/cleanup[16530]: C4329824261: message-id=<000001c6bb80$62ce40d0$e85ca8c0@ycj57>
Aug 9 13:09:30 mailserver postfix/qmgr[14861]: C4329824261: from=<guerino@caregrp.com>, size=3413, nrcpt=1 (queue active)
Aug 9 13:09:30 mailserver fetchmail[14917]: nicht gelöscht
Aug 9 13:09:310mailserver ppostfix/local[16531]: C4329824261: to=<alex@localhost>, relay=local, delay=0, status=sent (delivered to command: procmail -a "$EXTENSION")
Aug 9 13:09:310mailserver fpostfix/qmgr[14861]: C4329824261: removed

drcux
09.08.06, 11:10
delivered to command: procmail -a "$EXTENSION"

der Fehler liegt dann wohl bei procmail

der_dicke_alex
09.08.06, 11:15
delivered to command: procmail -a "$EXTENSION"

der Fehler liegt dann wohl bei procmail

Ähm... entschuldige meine naive Frage:
Was muss ich da stattdessen eintragen und wo mach ich das?

drcux
09.08.06, 11:51
Wenn Postfix direkt an cyrus ausliefern soll, mußt du in die /etc/postfix/main.cf mailbox_transport richtig setzen.

Bei mir:
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

was steht denn in deiner master.cf/main.cf?

fragenhaber
09.08.06, 12:30
Also
mailbox_transport = cyrus
sollte reichen.

der_dicke_alex
09.08.06, 13:24
Ich habe jetzt eure beiden Vorschläge mal ausprobiert. Es hat aber nichts gebracht.

Hier ist mal meine main.cf:
[/quote]
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
myhostname = mailserver.local
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mailserver.local, localhost.ciric.local, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
#mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
#mailbox_command = procmail -a "$EXTENSION"
#mailbox_transport = cyrus
inet_protocols = ipv4
[/quote]

fragenhaber
09.08.06, 13:28
Steht immer noch das selbe in den Logs?
Weil mailbox_command = procmail -a "$EXTENSION" würde ich so
mailbox_command =
abändern.

Roger Wilco
09.08.06, 13:45
Wenn ich aber mit Fetchmail nun meine Konten abgrase, holt es auch die Mails ohne Fehler ab. Diese kommen aber nicht im Cyrus an.
Hast du auch brav cyrdeliver als MDA in deiner fetchmailrc eingetragen und die Benutzernamen entsprechend der lokalen Konfiguration gemapped?

drcux
09.08.06, 13:48
Hast du auch brav cyrdeliver als MDA in deiner fetchmailrc eingetragen

Warum? fetchmail liefert doch an postfix aus...

der_dicke_alex
09.08.06, 13:50
Hab ich jetzt alles gemacht. Das Ergebnis bleibt aber das selbe...

Syslog sagt jetzt:


Aug 9 16:05:48 mailserver fetchmail[5431]: Nachricht xxx@xxx.de:133 von 133 wird gelesen (22078 Bytes)
Aug 9 16:05:48 mailserver postfix/smtpd[5433]: 0EDF68245C2: client=localhost[127.0.0.1]
Aug 9 16:05:48 mailserver postfix/cleanup[5442]: 0EDF68245C2: message-id=<23385426.1155123540061.JavaMail.melin@ems02-live.vnr.de>
Aug 9 16:05:48 mailserver postfix/qmgr[5373]: 0EDF68245C2: from=<backclick3@vnr-ag.de>, size=22411, nrcpt=1 (queue active)
Aug 9 16:05:48 mailserver fetchmail[5431]: nicht gelöscht
Aug 9 16:05:48 mailserver postfix/local[5443]: 0EDF68245C2: to=<alex@localhost>, relay=local, delay=0, status=sent (delivered to mailbox)
Aug 9 16:05:48 mailserver postfix/qmgr[5373]: 0EDF68245C2: removed
Aug 9 16:05:49 mailserver postfix/smtpd[5433]: disconnect from localhost[127.0.0.1]

drcux
09.08.06, 13:59
to=<alex@localhost>, relay=local, delay=0, status=sent (delivered to mailbox)

sieht doch gut aus...

Roger Wilco
09.08.06, 14:31
Warum? fetchmail liefert doch an postfix aus...
Weil Postfix in diesem Setup ein völlig unnötiger Zwischenschritt ist. :rolleyes:
In seinem ersten Beitrag hat der OP kein Wort über Postfix verloren. Davon bist du nur ausgegangen...


to=<alex@localhost>, relay=local, delay=0, status=sent (delivered to mailbox)

sieht doch gut aus...
Ja, nur wird die Mail damit nicht an Cyrus geliefert, wenn er die Konfiguration aus
#8 (http://www.linuxforen.de/forums/showpost.php?p=1407011&postcount=8) benutzt. Die Mails werden dann im MBOX-Format im mail_spool_directory (http://www.postfix.org/postconf.5.html#mail_spool_directory) ausgekippt.

fragenhaber
09.08.06, 15:04
Nicht wenn er folgendes in seine Config schreibt:
mailbox_transport = cyrus

Läuft bei mir aufm Server auch.

der_dicke_alex
09.08.06, 15:43
Nicht wenn er folgendes in seine Config schreibt:
mailbox_transport = cyrus

Läuft bei mir aufm Server auch.

Das hab ich jetzt auch so drin. Trotzdem kommen die mails noch nicht im Cyrus an.
:(

fragenhaber
09.08.06, 15:53
Funktioniert denn der Eintrag von drcux?
Ist eventuell noch an anderer Stelle in der Config so ein Eintrag (mailbox_transport = ) vorhanden?

Das einzigste was mir noch aufgefallen ist, ist das bei mir in den Logs statt relay=local, relay=cyrus steht.
Du könntest auch nochmal gucken, ob die Mails wirklich alle im mail_spool_directory landen. Sollte /var/spool/mail sein.

der_dicke_alex
09.08.06, 16:38
Ich bin jetzt schon ein Stück weiter mit dem Verstehen.
Sowohl lmtp als auch cyrus stehen als Transport-Type in der main.cf zur Auswahl.

Wenn ich richtig liege, sind diese Transport-Typen in der master.cf beschrieben.

die Zeilen für lmtp lautet:
lmtp unix - - - - - lmtp

die für cyrus war erst gar nicht vorhanden.
Ich habe sie mir ergoogelt und folgendes eingetragen:
cyrus unix - n n - - pipe
flags=R user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user}

ABER:
für lmtp wir in der main.cf der Pfad "lmtp:unix:/var/lib/imap/socket/lmtp" erwähnt. Der existiert aber nicht bei mir.

Genauso sieht es mit cyrus aus:
Der Pfad "/usr/lib/cyrus/bin/deliver" in der master.cf ist ebenfalls total falsch.

Welcher Pfad ist nun der Richtige???

Gruß

Alex

fragenhaber
09.08.06, 17:08
Hast du cyrus zufällig selber compiliert? Weil dann müssten die Dateien normalerweise unter /usr/local/lib/cyrus liegen.

der_dicke_alex
09.08.06, 17:13
Hast du cyrus zufällig selber compiliert? Weil dann müssten die Dateien normalerweise unter /usr/local/lib/cyrus liegen.

Ne, das tu ich mir nicht auch noch an ;)

Ich habe ausschliesslich die Standardpakete von Ubuntu 6.06 benutzt...

fragenhaber
09.08.06, 17:21
Dann mach mal folgendes:
wechsel in das verzeichnis /usr (cd /usr),
dann gibst du "find -name deliver" ein.
Er ribbelt dann ein bisschen auf der Platte rum und sucht nach der Datei deliver.

der_dicke_alex
09.08.06, 17:30
Dann mach mal folgendes:
wechsel in das verzeichnis /usr (cd /usr),
dann gibst du "find -name deliver" ein.
Er ribbelt dann ein bisschen auf der Platte rum und sucht nach der Datei deliver.

Er findet die Datei nicht. Auch nicht, wenn ich in / nochmal das ganze System durchsuchen lasse...

fragenhaber
09.08.06, 17:32
Ähm, bist du sicher, das du cyrus installiert hast? Hast du vielleicht einen anderen ImapD installiert?

Roger Wilco
09.08.06, 17:32
Er ribbelt dann ein bisschen auf der Platte rum und sucht nach der Datei deliver.
Er wird aber leider nicht die richtige Datei finden, weil der MDA cyrdeliver heißt.
Man könnte natürlich in der Dateiliste (http://packages.ubuntu.com/cgi-bin/search_contents.pl?searchmode=filelist&word=cyrus-common-2.2&version=dapper&arch=i386) des entsprechenden Pakets nachsehen, aber das wäre zu einfach. Genau so, wie einfach den richtigen MDA in der fetchmailrc einzutragen und auf Postfix zu verzichten. :ugly:

fragenhaber
09.08.06, 17:35
@ Roger Wilco: Ja, gut, wir machen uns das ganze eben ein bisschen schwer. Mit den Dateinamen und Pfaden gehe ich jetzt immer von den Pfaden von meiner SuSE 9.2 Installation aus und anscheinend hat Ubuntu halt andere Pfade.

der_dicke_alex
09.08.06, 20:32
Das Problem ist gelöst. Der Eintrag in der master.cf wurde nun auf /usr/sbin/cyrdeliver korrigiert und es läuft alles wunschgemäß.
Wieso der Eintrag allerdings komplett fehlte, ist unbekannt...

Danke.

Alex