On Wed, 2004-08-25 at 00:46 +0100, David Woodhouse wrote:
> One alternative I've considered but not yet implemented is to reject the
> DSN-to-postmaster at DATA time instead of at RCPT time. For reasons we
> have to explain quite often, that's hard to implement -- we have to
> temporarily reject certain RCPTs if the response after DATA wouldn't be
> the same for each.
Hmmm. It doesn't have to be as hard as that -- it's sufficient just to
reject at DATA time if it came _only_ to postmaster. If it comes to
postmaster and another recipient you accept it, but that's fairly
unlikely.
I'm not rolling out changes at 1am. But it might look something like
this:
Index: include/acl-content
===================================================================
RCS file: /home/dwmw2/admincvs/eximconf/include/acl-content,v
retrieving revision 1.7
diff -u -p -r1.7 acl-content
--- include/acl-content 19 Aug 2004 13:01:54 -0000 1.7
+++ include/acl-content 25 Aug 2004 00:11:47 -0000
@@ -4,6 +4,12 @@ check_content:
# No content checking for hosts we trust.
accept hosts = +trust_hosts
+ # Reject DSN if it has gone only to postmaster(s)
+ deny condition = ${if eq{$acl_m8}{postmasteronly}{1}}
+ senders = :
+ message = No mail is ever sent from the postmaster@ address\n\
+ So we don't want to see bounces to it either.
+
# Require a little standards compliance, even from relay_hosts
require verify = header_syntax
message = Invalid address in message header. Consult RFC2822.
Index: include/acl-recipient
===================================================================
RCS file: /home/dwmw2/admincvs/eximconf/include/acl-recipient,v
retrieving revision 1.14
diff -u -p -r1.14 acl-recipient
--- include/acl-recipient 16 Aug 2004 13:05:20 -0000 1.14
+++ include/acl-recipient 25 Aug 2004 00:11:47 -0000
@@ -12,6 +12,7 @@ check_recipient:
accept local_parts = postmaster
domains = +local_domains : +relay_domains : +virtual_domains
+ set acl_m8 = ${if eq{$acl_m8}{}{postmasteronly}{$acl_m8}}
# Now we check for underscores in HELO and make it bounce.
deny condition = ${if match{$sender_helo_name}{_}{1}}
@@ -130,4 +131,4 @@ check_recipient:
deny hosts = !+trust_hosts
!verify = sender/callout=70s,random,postmaster
- accept
+ accept set acl_m8 = non-postmaster
--
dwmw2