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

Reply via email to