Just wanted to share a trick I'm trying on backup MX servers to prevent
spam. As you know often spammers will try the backup MX server hoping
the backup has less spam filtering. But if the primary server is online
there's no reason to use the backup. So the idea is - if the primary is
up - send them a 4xx error.
The way I determine if the primary is down is to do a forward callout.
If it returns a message that it can't connect or complete verification
then the server is offline and the backup should take the message. if it
is verified as good then the primary is online and should return a defer
- 4xx error.
The idea is to use the verify command with defer_ok but check the verify
message for the word "not" in it.
defer message = DEFER - NOBACKUP - Primary server for [$domain] is
active. Try that server first.
verify = recipient/callout=40s,connect=3s,defer_ok,use_sender
!condition = ${if match{$acl_verify_message}{not}{true}{false}}
I'm still playing with this. Probable also need to reduce or eliminate
caching on the recipient callout. But I thought I'd post it in case
someone finds it useful.