PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cyrus IMAP sendet kein response



Eddie
20.01.04, 16:07
Hallo,

Habe einen cyrus imapserver im betrieb und habe folgendes problem damit:
wenn es eine Mail reinkommt, die an keine Imap-Mailbox zugestellt werden kann, weil sich der Absender z.b. vertippt hat, landet diese dann in Unix Mailbox von User cyrus. Der Server generiert aber kein response an den Absender, dass die Mail nicht ordnungsgemäß zugestellt werden konnte, was man aber von einem Mailserver erwartet.
Die Frage ist: kann man das mit einstellungen am Cyrus Imap beheben oder müssen zusatzlösungen her?

Jasper
20.01.04, 16:19
das ist kein cyrus-problem. cyrus bekommt die mail von irgendwem (procmail, mta, etc. pp.). wenn cyrus keine passende mailbox hat, lehnt es die annahme ab. es ist aufgabe der einliefernden komponente darauf zu reagieren. bspw. könnte ein MTA die an imap unzustellbaren mails an postmaster senden oder die mail einfach bouncen lassen. in letzterem fall bekommt der absender eine nachricht.


-j

Eddie
20.01.04, 16:30
..."bouncen lassen" ist genau was ich brauche. Wie kann man das jetzt mit bordmitteln realisieren?
Habe folgende Aufbau von Mailserver: Postfix -> Procmail -> IMAPd.

Jasper
20.01.04, 16:50
Original geschrieben von Eddie
..."bouncen lassen" ist genau was ich brauche. Wie kann man das jetzt mit bordmitteln realisieren?
Habe folgende Aufbau von Mailserver: Postfix -> Procmail -> IMAPd.

welche aufgabe hat procmail in dem setup? bouncen geht hier etwas schlecht, weil aus postfix-sicht procmail ein mda ist, sobald postfix procmail die mail übergeben hat gilt die mail als zugestellt (aus postfix-sicht). damit ist ein bounce nieht mehr möglich.

lass nach möglichkeit procmail weg und lass postfix die mail direkt (am besten per lmtp) an cyrus weiterreichen, dann ist cyrus für postfix der mda, schlägt die weiterreichung der mail an den mda mit einem permanenten fehler fehl (wenn cyrus die mailbox nicht kennt, gibt er 550 zurück, dass ist ein permanter fehler), kann postfix die mail bouncen lassen. das ist dann standardprocedure.


-j

Eddie
21.01.04, 09:15
Procmail stellt die Mails direkt in die Mailboxen der User und in die Shared Mailboxes. Das Filtering auf dem Server wäre sonst nicht realisierbar, zumindest nicht so elegant wie mit Procmail. Aber vielleicht gibt es auch andere Lösungen...

Habe Procmail beigebogen, dass es die nicht zustellbare Mails bei der Zustellung in die cyrus unix Mailbox abfängt und in eine extra dafür eingerichtete Shared Mbox legt, da wo ich sie halt sehen kann.
Vielleicht kann man auch procmail beibringen (mit formail, shell Skripten, etc.), dass sobald dort eine Mail landet, eine Anwortmail an den Absender rausgeht?

Hat jemand procmail skripte, die ungefähr in die richtung gehen oder kennt einer ne page mit beispielskripten?

Jasper
21.01.04, 11:19
Original geschrieben von Eddie
Procmail stellt die Mails direkt in die Mailboxen der User und in die Shared Mailboxes. Das Filtering auf dem Server wäre sonst nicht realisierbar, zumindest nicht so elegant wie mit Procmail. Aber vielleicht gibt es auch andere Lösungen...


die andere lösung heisst sieve. damit kann man direkt den cyrus filtern lassen.


-j

Jasper
21.01.04, 11:32
es muss auch mit procmail funktionieren, weil postfix die mail per pipe an procmail weitergibt (nehme ich mal an, wäre der standard). wenn procmail die mail an cyrus nicht losbekommt, sollte der errorcode komplett durchgereicht (ist ja eine pipe). wenn procmail einen exitcode von 67 oder 68? zurückgibt, lässt postfix die mail bouncen. wie sehen die logs für eine erfolgreiche und eine nicht erfolgreiche (nicht vorhandener mailboxuser) aus?

ich würde zwar trotzdem procmail rausnehmen weil cyrus das filtern mit übernehmen kann, aber auch mit procmail muss es funktionieren. ich hatte nicht bedacht, dass das ganze per pipe funktioniert.


-j

Eddie
21.01.04, 15:44
Hier eine erfolgreiche Zustellung:

------------------------schnipp!----------------------------------------------------------
procmail: [17398] Wed Jan 21 16:38:12 2004
#procmail: Assigning "INCLUDERC=/etc/procmail/procmail.edie"
#procmail: Couldn't read "/etc/procmail/procmail.edie"
procmail: Executing "/usr/lib/cyrus-imapd/deliver,-a,edie,-m,user.edie"
procmail: Assigning "LASTFOLDER=/usr/lib/cyrus-imapd/deliver -a edie -m user.edie"
Subject: procmail test edie1
Folder: /usr/lib/cyrus-imapd/deliver -a edie -m user.edie
------------------------schnapp!---------------------------------------------------------

Hier ist der Log für eine nicht erfolgreiche zustellung:

-------schnipp!--------------------------------------------------------------------------
procmail: [17379] Wed Jan 21 16:25:01 2004
#procmail: Assigning "INCLUDERC=/etc/procmail/procmail.edie"
#procmail: Couldn't read "/etc/procmail/procmail.edie"
procmail: Executing "/usr/lib/cyrus-imapd/deliver,-a,edie,-m,user.edie"
procmail: Program failure (65) of "/usr/lib/cyrus-imapd/deliver"
procmail: Assigning "LASTFOLDER=/usr/lib/cyrus-imapd/deliver -a edie -m user.edie"
procmail: Locking "/var/spool/mail/cyrus.lock"
procmail: Assigning "LASTFOLDER=/var/spool/mail/cyrus"
procmail: Opening "/var/spool/mail/cyrus"
procmail: Acquiring kernel-lock
procmail: Unlocking "/var/spool/mail/cyrus.lock"
Subject: procmail test edie1
Folder: /var/spool/mail/cyrus
-------------schnapp!----------------------------------------------------------------

(auskommentierte zeilen weisen nur dass der user kein eigenes procmail skript erstellt hat)


Wie man's sieht wird der Fehlercode 65 zurückgegeben. Wie bringe postfix bei diese mail zu bouncen?