#!!# ACL that is used after the RCPT command
check_recipient:
# Exim 3 had no checking on -bs messages, so for compatibility
# we accept if the source is local SMTP (i.e. not over TCP/IP).
# We do this by testing for an empty sending host field.
accept hosts = :
deny message = Possible spam, rejected
domains = +local_domains
local_parts = ^.*[.]
# Use DNS blacklists to curb incomming spam
#
# Add a warning header if the sending host is in these
# DNSBLs but acccept the message (or rather leave it for
# later ACLs to accept/deny
deny message = Message rejected $sender_fullhost is blacklisted at $dnslist_domain, see $dnslist_text
dnslists = zen.spamhaus.org
warn message = X-Blacklisted-At: $dnslist_domain
add_header = X-Blacklisted-At: $dnslist_domain
dnslists = dnsbl.njabl.org
warn message = X-Blacklisted-At: $dnslist_domain
add_header = X-Blacklisted-At: $dnslist_domain
dnslists = bl.spamcop.net
warn message = X-Blacklisted-At: $dnslist_domain
add_header = X-Blacklisted-At: $dnslist_domain
dnslists = list.dsbl.org
warn message = X-Blacklisted-At: $dnslist_domain
add_header = X-Blacklisted-At: $dnslist_domain
dnslists = cbl.abuseat.org
warn message = X-Blacklisted-At: $dnslist_domain
add_header = X-Blacklisted-At: $dnslist_domain
# deny message = The mail servers for the domain $sender_address_domain are listed at $dnslist_domain ($dnslist_value); see $dnslist_text
# dnslists = zen.spamhaus.org/<|${lookup dnsdb {>|a=<|${lookup dnsdb {>|mxh=$sender_address_domain} }} }
# DNS List Check End
#
# Accept bounces to lists even if callbacks or other checks would fail
warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes
condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \
{yes}{no}}
accept condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}/config.pck}}} \
{yes}{no}}
# Accept bounces to lists even if callbacks or other checks would fail
warn message = X-WhitelistedRCPT-nohdrfromcallback: Yes
condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \
{yes}{no}}
accept condition = \
${if and {{match{$local_part}{(.*)-bounces\+.*}} \
{exists {/usr/local/cpanel/3rdparty/mailman/lists/${lc:$1}_${lc:$domain}/config.pck}}} \
{yes}{no}}
#if it gets here it isn't mailman
#sender verifications are required for all messages that are not sent to lists
#require verify = sender/callout
#accept domains = +local_domains
#endpass
deny
!verify = sender/callout=30s,defer_ok,maxwait=60s
!senders = +whitelist_senders
accept domains = +local_domains
endpass
#recipient verifications are required for all messages that are not sent to the local machine
#this was done at multiple users requests
message = "The recipient cannot be verified. Please check all recipients of this message to verify they are valid."
verify = recipient
accept domains = +relay_domains
warn message = ${perl{popbeforesmtpwarn}{$sender_host_name}}
hosts = +relay_hosts
accept hosts = +relay_hosts
warn message = ${perl{popbeforesmtpwarn}{$sender_host_address}}
condition = ${perl{checkrelayhost}{$sender_host_address}}
accept condition = ${perl{checkrelayhost}{$sender_host_address}}
accept hosts = +auth_relay_hosts
endpass
message = $sender_fullhost is currently not permitted to \
relay through this server. Perhaps you \
have not logged into the pop/imap server in the \
last 30 minutes or do not have SMTP Authentication turned on in your email client.
authenticated = *
deny message = $sender_fullhost is currently not permitted to \
relay through this server. Perhaps you \
have not logged into the pop/imap server in the \
last 30 minutes or do not have SMTP Authentication turned on in your email client.
#!!# ACL that is used after the DATA command
check_message:
# Enabling this will make the server non-rfc compliant
# require verify = header_sender
#accept
deny
!verify = header_sender
!senders = +whitelist_senders
accept