Hi,
as a followup to my own question:
On 11/3/11 1:31 PM, Rolf E. Sonneveld wrote:
Hi,
running the latest version of MIMEdefang. I would like to be able to
do a per-recipient analysis of inbound mail, using Postfix. I know
that the MD stream_by_recipient feature requires a recent version of
Sendmail and probably will not work with Postfix, see for example:
http://lists.roaringpenguin.com/pipermail/mimedefang/2009-May/034746.html
As the information I found about the combination of MD,
stream_by_recipient and postfix is from 2009 and 2010, I wonder if
there have been any developments on this topic?
Is anyone on this list running MD from within Postfix, using the
stream_by_recipient feature?
Also, I'm not sure I understand the problem correctly: is the mail
split up into one-message-per-recipient to be able to run it again
through MIMEdefang? If so, the Postfix non_smtpd_milters option can be
used to have the reinjected messages be run through MD again?
It seems to work out fairly well, or maybe I should say: it runs
perfectly well. I did some testing with Postfix 2.8.6 and MD 2.72. I
used filter_begin:
sub filter_begin {
my($entity) = @_;
if (stream_by_recipient()) {
return;
}
}
and in postfix main.cf:
smtpd_milters = inet:localhost:25000
non_smtpd_milters = inet:localhost:25000
When I send a two-recipient message from Gmail I see in maillog:
Nov 22 14:22:07 lynx postfix/smtpd[1419]: connect from
mail-fx0-f41.google.com[209.85.161.41]
Nov 22 14:22:07 lynx postfix/smtpd[1419]: 2172B1014AB:
client=mail-fx0-f41.google.com[209.85.161.41]
Nov 22 14:22:07 lynx postfix/cleanup[1423]: 2172B1014AB:
message-id=<CAJV=feynxaz-t9cuyfzwex4bed8ara3+cqzmjq6sj65vdnn...@mail.gmail.com>
Nov 22 14:22:07 lynx postfix/pickup[1416]: 4D6FF10151E: uid=602
from=<[email protected]>
Nov 22 14:22:07 lynx postfix/cleanup[1426]: 4D6FF10151E:
message-id=<CAJV=feynxaz-t9cuyfzwex4bed8ara3+cqzmjq6sj65vdnn...@mail.gmail.com>
Nov 22 14:22:07 lynx mimedefang.pl[830]: 4D6FF10151E:
MDLOG,4D6FF10151E,mail_in,,,[email protected],[email protected],Test
bericht 11
Nov 22 14:22:07 lynx postfix/qmgr[1415]: 4D6FF10151E:
from=<[email protected]>, size=1439, nrcpt=1 (queue active)
Nov 22 14:22:07 lynx postfix/local[1430]: warning: dict_nis_init: NIS
domain name not set - NIS lookups disabled
Nov 22 14:22:07 lynx postfix/pickup[1416]: 679B310151D: uid=602
from=<[email protected]>
Nov 22 14:22:07 lynx postfix/cleanup[1426]: 679B310151D:
message-id=<CAJV=feynxaz-t9cuyfzwex4bed8ara3+cqzmjq6sj65vdnn...@mail.gmail.com>
Nov 22 14:22:07 lynx mimedefang.pl[830]: 679B310151D:
MDLOG,679B310151D,mail_in,,,[email protected],[email protected],Test
bericht 11
Nov 22 14:22:07 lynx mimedefang.pl[831]: 2172B1014AB: filter_begin set
TerminateAndDiscard flag.
Nov 22 14:22:07 lynx mimedefang[3130]: 2172B1014AB: Discarding because
filter instructed us to
Nov 22 14:22:07 lynx postfix/cleanup[1423]: 2172B1014AB: milter-discard:
END-OF-MESSAGE from mail-fx0-f41.google.com[209.85.161.41]: milter
triggers DISCARD action; from=<[email protected]>
to=<[email protected]> proto=ESMTP helo=<mail-fx0-f41.google.com>
Nov 22 14:22:07 lynx postfix/local[1430]: 4D6FF10151E:
to=<[email protected]>, relay=local, delay=0.19,
delays=0.11/0.06/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Nov 22 14:22:07 lynx postfix/qmgr[1415]: 4D6FF10151E: removed
Nov 22 14:22:07 lynx postfix/qmgr[1415]: 679B310151D:
from=<[email protected]>, size=1439, nrcpt=1 (queue active)
Nov 22 14:22:07 lynx postfix/local[1430]: 679B310151D:
to=<[email protected]>, relay=local, delay=0.14,
delays=0.12/0/0/0.02, dsn=2.0.0, status=sent (delivered to mailbox)
Nov 22 14:22:07 lynx postfix/qmgr[1415]: 679B310151D: removed
Nov 22 14:22:37 lynx postfix/smtpd[1419]: disconnect from
mail-fx0-f41.google.com[209.85.161.41]
and a log file that's written to from within MD shows:
Connection from: 209.85.161.41
Name of connecting system: mail-fx0-f41.google.com
HELO/EHLO used by remote system: mail-fx0-f41.google.com
Connection from: 127.0.0.1
Name of connecting system: localhost
HELO/EHLO used by remote system: localhost
Entering filter_begin
Entering filter main routine (filter)
Entering filter_end routine
Connection from: 127.0.0.1
Name of connecting system: localhost
HELO/EHLO used by remote system: localhost
Entering filter_begin
Entering filter main routine (filter)
Entering filter_end routine
When I send a single-recipient message I get:
Nov 22 14:23:31 lynx postfix/smtpd[1419]: connect from
mail-bw0-f41.google.com[209.85.214.41]
Nov 22 14:23:31 lynx postfix/smtpd[1419]: 3F5DA1014AB:
client=mail-bw0-f41.google.com[209.85.214.41]
Nov 22 14:23:31 lynx postfix/cleanup[1423]: 3F5DA1014AB:
message-id=<CAJV=fey_j+4zjd45ubrfcregacjkx0pftto_bj1o5zzic5m...@mail.gmail.com>
Nov 22 14:23:31 lynx mimedefang.pl[831]: 3F5DA1014AB:
MDLOG,3F5DA1014AB,mail_in,,,<[email protected]>,<[email protected]>,test
bericht 12
Nov 22 14:23:31 lynx postfix/qmgr[1415]: 3F5DA1014AB:
from=<[email protected]>, size=1314, nrcpt=1 (queue active)
Nov 22 14:23:31 lynx postfix/local[1430]: 3F5DA1014AB:
to=<[email protected]>, relay=local, delay=0.21, delays=0.2/0/0/0,
dsn=2.0.0, status=sent (delivered to mailbox)
Nov 22 14:23:31 lynx postfix/qmgr[1415]: 3F5DA1014AB: removed
Nov 22 14:24:01 lynx postfix/smtpd[1419]: disconnect from
mail-bw0-f41.google.com[209.85.214.41]
and:
Connection from: 209.85.214.41
Name of connecting system: mail-bw0-f41.google.com
HELO/EHLO used by remote system: mail-bw0-f41.google.com
Entering filter_begin
Entering filter main routine (filter)
Entering filter_end routine
Is this sufficient 'evidence' that MD + stream_by_recipient()+ Postfix
(non_smptd_milters) provides a solution to the problem of treating a
multi-recipient message differently based upon different 'per-user'
preferences/settings? Any things I forgot? Any caveats?
I realize that with this setup, it is not possible to provide the
sending MTA an 'after-DATA' per-user status code, but that problem is
not an MD problem, it's rather a flaw in the design of SMTP.
/rolf
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID. You may ignore it.
Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang