GreenArrow Email Software 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:

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.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.

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:

  1. An exact IP name match, exact match of recipient domain.
  2. An exact IP name match, wildcard match of recipient domain.
  3. An exact IP name match, exact match of MX domain.
  4. An exact IP name match, wildcard match of MX domain.
  5. The * IP record, exact match of recipient domain.
  6. The * IP record, wildcard match of recipient domain.
  7. The * IP record, exact match of MX domain.
  8. 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.

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

Copyright © 2012–2024 GreenArrow Email