Throttling
Concepts
GreenArrow Engine can throttle delivery attempts both for groups of IP addresses via its Throttle Templates, and on a per-sending-IP-address basis via Throttle Overrides. Each “Throttle Template” or “Throttle Override” entry is referred to as a “Throttle Rule”.
The throttle template is applied only to IP address VirtualMTAs. Relay server VirtualMTAs have their own, independent throttling settings.
Each Throttle Rule applies to a specific recipient domain or collection of recipient domains. For example, one Throttle Rule could apply to gmail.com, while another applies to yahoo.com and ymail.com. Within each Throttle Rule, you can define the following:
See GreenArrow Cluster for information on how to coordinate throttles between multiple GreenArrow instances.
Domains
The domain(s) that this rule should apply to, listed one per line.
Domains can be defined with the following wildcards:
- A domain that is prefixed with
[*.]will match the given domain and all subdomains. For example,[*.]example.comwill matchexample.com,subdomain.example.com, andwww.subdomain.example.com. - A domain that is prefixed with
*.will match only subdomains. For example,*.example.comwill matchsubdomain.example.comandwww.subdomain.example.com, but will not matchexample.com.
Domains can also be MX hostnames, specified like mx:mx1.example.com. When
specified as an MX, throttling is performed based upon the resolved MX
hostnames of the recipient’s domain. If any resolved MX record matches an
mx:___ entry, that entry’s throttling configuration will be used. This search
is performed in MX priority order.
Settings to use for a domain are checked in this order. The first match is used:
- An exact IP name match, exact match of recipient domain.
- An exact IP name match, wildcard match of recipient domain.
- An exact IP name match, exact match of MX domain.
- An exact IP name match, wildcard match of MX domain.
- The
*IP record, exact match of recipient domain. - The
*IP record, wildcard match of recipient domain. - The
*IP record, exact match of MX domain. - The
*IP record, wildcard match of MX domain.
For example, when looking up delivery to foo.example.com (with an mx of mx1.example.com) domain strings are searched for in the following order:
foo.example.com
[*.]foo.example.com
*.example.com
[*.]example.com
*.com
[*.]com
mx:mx1.example.com
mx:*.example.com
mx:[*.]example.com
mx:*.com
mx:[*.]com
All name or domain matches are case-insensitive.
Max Concurrent Connections
The maximum number of concurrent SMTP connections to make when delivering mail
to the listed domain(s). This is applied on a per-sending-IP addresses basis.
For example, if a Throttle Template Rule specifies a maximum of 20 concurrent
connections, and there are two sending IP addresses that the rule is applied
to, then a maximum of 40 total concurrent connections will be made at any
given time, with a maximum of 20 from each IP address.
Max Messages per Hour
The maximum number of messages to attempt to deliver per hour to the listed
domain(s). This is applied on a per-sending-IP addresses basis. For example, if
a Throttle Template Rule specifies a maximum of 10,000 messages per hour, and
there are two sending IP addresses that the rule is applied to, then a maximum
of 20,000 total delivery attempts will occur per hour, with a maximum of
10,000 delivery attempts per hour for each IP address. Leaving this field
blank causes there to be no limit.
Throttle Program
The Throttle Program to use.

Each time that GreenArrow Engine attempts to deliver a message, it first checks the configured Throttle Rules and applies the most specific matching rule. The order of precedence is:
- A Throttle Override rule that matches the sending IP address and recipient’s domain name
- A Throttle Template rule that matches the recipient’s domain name
- The Default Throttle Override of the sending IP address
- The Default Throttle Template Rule
Updating Throttle Template Settings
This section describes how to update throttle settings via GreenArrow Engine’s web interface. To update these settings by running SQL queries, see the Updating Throttle Settings in SQL page.
- Log into GreenArrow Engine’s web interface.
- Navigate to
Configure=>Virtual MTAs:
- Click the
Throttling Configurationbutton:
- Click on the desired Throttling Template’s
Editbutton:
- To edit an existing rule, find it in the list, and post the desired updates:
- To create a new rule, scroll down until you see the
Add a rulebutton towards the bottom of the page, click the button, and fill in the desired values:
Updating Throttle Overrides for Sending IP Addresses
This section describes how to update throttle settings via GreenArrow Engine’s web interface. To update these settings by running SQL queries, see the Updating Throttle Settings in SQL page. To update these settings via a command line interface, see the Updating Throttle Settings on the Command Line page.
- Log into GreenArrow Engine’s web interface.
- Navigate to
Configure=>Virtual MTAs:
- Scroll down to the IP address that you want to update, and click its
Editbutton:
- To override a Throttle Template rule, find it in the list, and click the
Overridebutton next to it. After clicking this button, a form appears which contains the fields described in theConceptssection of this document:
- To edit an existing Throttle Override Rule, find it in the
Throttling Ruleslist and update it.
- To create a new Throttle Override Rule that there isn’t a corresponding Throttle Template entry for, click the
Add a rulebutton:
