GreenArrow Documentation

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:

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.com will match example.com, subdomain.example.com, and www.subdomain.example.com.
  • A domain that is prefixed with *. will match only subdomains. For example, *.example.com will match subdomain.example.com and www.subdomain.example.com, but will not match example.com.

Settings to use for a domain are checked in this order. The first match is used:

  1. An exact IP name match and an exact domain match
  2. An exact IP name match and the wildcard domain entry
  3. The wildcard IP entry and an exact domain match
  4. The wildcard IP entry and the wildcard domain entry

For example, when looking up delivery to foo.example.com domain strings are searched for in the following order:

foo.example.com
[*.]foo.example.com
*.example.com
[*.]example.com
*.com
[*.]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.

edit-throttle-template-rule-form.png

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:

  1. A Throttle Override rule that matches the sending IP address and recipient’s domain name
  2. A Throttle Template rule that matches the recipient’s domain name
  3. The Default Throttle Override of the sending IP address
  4. 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.

  1. Log into GreenArrow Engine’s web interface.
  2. Navigate to Configure => Virtual MTAs:
    configure-virtual-mtas.png
  3. Click the Throttling Configuration button:
    view-throttle-template-button.png
  4. Click on the desired Throttling Template’s Edit button:
    edit-throttling-template-button.png
  5. To edit an existing rule, find it in the list, and post the desired updates: edit-throttle-template-rule-form.png
  6. To create a new rule, scroll down until you see the Add a rule button towards the bottom of the page, click the button, and fill in the desired values:
    add-throttle-template-rule-button.png

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.

  1. Log into GreenArrow Engine’s web interface.
  2. Navigate to Configure => Virtual MTAs:
    configure-virtual-mtas.png
  3. Scroll down to the IP address that you want to update, and click its Edit button:
    edit-ip-address.png
  4. To override a Throttle Template rule, find it in the list, and click the Override button next to it. After clicking this button, a form appears which contains the fields described in the Concepts section of this document:
    edit-throttle-template-rule-form.png
  5. To edit an existing Throttle Override Rule, find it in the Throttling Rules list and update it.
  6. To create a new Throttle Override Rule that there isn’t a corresponding Throttle Template entry for, click the Add a rule button:
    add-throttle-template-rule-button.png