# lower rate limit for certain authenticated users
&&SASL_WHITELIST {
	# other servers relay via mail.archlinux.org using authentication. username is the
	# hostname part of the fqdn
{% for host in groups['all'] %}
	sasl_username={{ hostvars[host].inventory_hostname_short }}
{% endfor %}
	# add other usernames to bypass rate-limits here:
	sasl_username=devnull;
};

# no rate-limit for some authenticated users
&&NO_RATE_LIMIT_USERS {
        sasl_username=aur;
};
id=NoRateLimit;
        protocol_state==END-OF-MESSAGE;
        &&NO_RATE_LIMIT_USERS;
        action=dunno;

# lower rate limit for certain users (360/3600 == average 1 email every 10 seconds)
id=SaslWhitelist;
	protocol_state==END-OF-MESSAGE;
	&&SASL_WHITELIST;
	action=rcpt(sasl_username/360/3600/REJECT You can only send to 360 recipients per 1h per user)
id=SaslWhitelist2;
	protocol_state==END-OF-MESSAGE;
	&&SASL_WHITELIST;
	action=dunno;

# sasl_username != doesn't work for whatever reason
id=RcptRate;
	protocol_state==END-OF-MESSAGE;
	sasl_username!~/^$/;
	action=rcpt(sasl_username/100/21600/REJECT You can only send to 100 recipients per 6h per user)

# this causes postfwd to log something for every mail; easier testing
id=logging;
	protocol_state==END-OF-MESSAGE;
	action=dunno;
