extract_addresses_remove_arguments = false
headers_charset = utf-8
qualify_domain = CONF_master_domain
+untrusted_set_sender = *
SECTION(global, bounce)m4_dnl
delay_warning = 1h : 24h : 2d
mail:
## If we stashed a warning header about HELO from earlier, we should
- ## add it now.
+ ## add it now. Only don't bother if the client has authenticated
+ ## successfully for submission (because we can't expect mobile
+ ## clients to be properly set up knowing their names), or it's one of
+ ## our own satellites (because they're either properly set up anyway,
+ ## or satellites using us as a smarthost).
warn condition = $acl_c_helo_warning
+ !condition = ${if eq{$acl_c_mode}{submission}}
+ !hosts = +allnets
add_header = :after_received:X-Distorted-Warning: \
BADHELO \
Client's HELO doesn't match its IP address.\n\t\
## If this is directly from a client then hack on it for a while.
warn condition = ${if eq{$acl_c_mode}{submission}}
- control = submission
+ control = submission/sender_retain
## Insist that a local client connect through TLS.
deny message = Hosts within CONF_master_domain must use TLS
deny message = Sender not authenticated
condition = ${if !def:acl_c_user}
- ## Make sure that the local part is one that the authenticated sender
- ## is allowed to claim.
- deny message = Sender address forbidden to calling user
- !condition = \
- ${if exists {CONF_sysconf_dir/auth-sender.conf} \
- {${lookup {$acl_c_user} \
- lsearch \
- {CONF_sysconf_dir/auth-sender.conf} \
- {${if match_address \
- {$sender_address} \
- {+value}}} \
- {false}}}}
- !condition = ${LOOKUP_DOMAIN($sender_address_domain,
- {${if and {{match_local_part \
- {$acl_c_user} \
- {+dom_users}} \
- {match_local_part \
- {$sender_address_local_part} \
- {+dom_locals}}}}},
- {${if and {{match_local_part \
- {$sender_address_local_part} \
- {+user_extaddr}} \
- {or {{eq {$sender_address_domain} \
- {}} \
- {match_domain \
- {$sender_address_domain} \
- {+public}}}}}}})}
-
## All done.
accept