PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : procmail und mehrere Adressaten



klemens
07.04.06, 23:44
Folgendes:
Ich sortiere Emails für mehrere Domains per procmail
Adressat
klemens@juhu.tld -> /home/klemens.juhu.tld/Maildir/
klemens@blabla.tld -> /home/klemens.blabla.tld/Maildir/

funkt auch soweit

Wenn ich jetzt aber ein Email mit mehreren Empfängern schicke z.b
klemens@juhu.tld;klemens@blabla.tld
dann schickt procmail das mail in die erste passende box und hat die sache erledigt.
Kann ich procmail davon überzeugen, dass es beim ersten Treffer nicht einfach zuteilt und dann die Hände in den Schoss legt, sondern in seiner Liste einfach weitertut, bis alles abgearbeitet ist?

Im konkreten Beispiel: dass sowohl klemens.juhu.tld UND klemens.blabla.tld das Mail bekommt?

X_FISH
12.04.06, 12:57
Wenn ich es richtig verstanden habe solltest du ein

:0c

statt deinem

:0

verwenden => c - continue

Damit wird die Mail weiterverarbeitet. Problem: Hast du eine »catch all« Konfig => dann wird sie am Ende auch noch wo abgelegt...

Grüße, Martin

klemens
12.04.06, 13:17
Hallo Martin!

Danke für die Antwort!

Ich habe mit :0c getestet. Leider hat das nicht zuverlässig geklappt und auch noch den Nebeneffekt, dass die Empfänger dann das Mail mehrmals (Anzahl der Adressaten) bekommen. In den FAQ wird dann noch extra angeführt, dass für diese Aufgabe procmail nicht geeignet ist (sorry, will den Link jetzt nicht nochmals suchen).
Am Ende könnte man das Mail dann ev. in /dev/null ablegen. Soweit bin ich nicht gekommen.

Da ich mit maildrop (courier) dann auch noch meine liebe Not hatte, hab ich die Sache an der Wurzel gepackt und die letzten Tage mit exim4 verbracht.
Dort lässt sich eine Lösung anstreben, indem man im Routereintrag folgendes vornimmt (bei mir Debian sarge - aufteilung in kleinere config-Dateien):

/etc/exim4/conf.d/transport/30_exim4-config_maildir_home


maildir_home:
debug_print = "T: maildir_home for $local_part@$domain"
driver = appendfile
.ifdef MAILDIR_HOME_MAILDIR_LOCATION
directory = MAILDIR_HOME_MAILDIR_LOCATION
.else
directory = /home/mailuser/$domain/$local_part/Maildir
.endif
.ifdef MAILDIR_HOME_CREATE_DIRECTORY
create_directory
.endif
....


Das ergibt zwar noch ein Chaos in der Eigentümer/Rechteverteilung, da ja der Systemuser $local_part nicht mit dem pop3-User gleich ist, aber das lässt sich hinbiegen (ev. über Gruppenrechte). Zu beachten ist, dass exim4 nur in ein Maildir ausliefert, dass dem $local_part gehört.

EDIT:
Pfad zur config-Datei korrigiert

EDIT2: fast vergessen:
Zu beachten ist auch



.ifndef LOCAL_DELIVERY
# The default transport, set in /etc/exim4/update-exim4.conf.conf,
# defaulting to mail_spool. See CONFDIR/conf.d/transport/ for possibilities
LOCAL_DELIVERY=maildir_home
.endif


in /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs