Pausing Domains
- Table of Contents
- Introduction
- Configuration
- Paused Domain Behavior
- Relay Servers
- List or Remove Paused Domains
- Paused Domains User Interface
Introduction
GreenArrow can be configured to match remote SMTP responses against one or more regular expressions. Such a match will pause subsequent delivery attempts from the same RFC5321.MailFrom or RFC5322.From domain when the recipient domain matches the recipient domain that triggered the pause, or when the delivery attempt is in the same throttle grouping as that which triggered the pause.
Configuration
This is done using either the smtp_pattern or smtp_match_pause_domain configuration directives.
Pause configuration has the following key attributes:
Pause Type |
This results in either the RFC5321.MailFrom domain or the RFC5322.From domain being paused. |
Pause Duration |
The length of time the pause will be in effect. This defaults to 10 minutes. |
Pause Message |
The message used on subsequent deferrals due to this pause. This defaults to either
|
Pause Percentage |
The percentage of delivery attempts that this pause should affect. This provides you a way to pause deliveries on a portion of the regular delivery attempts, while allowing some delivery attempts to proceed. These deliveries have no effect on the existence of the pause (i.e. GreenArrow will not cancel a pause early because a permitted delivery succeeds). |
Order of evaluation:
- First, smtp_pattern is evaluated. If the matching pattern includes the
pause
option, then that pause will be triggered. - If no pause was triggered by smtp_pattern, then smtp_match_pause_domain is evaluated.
Paused Domain Behavior
When a pause is triggered, either the RFC5321.MailFrom domain or the RFC5322.From domain from the original message is recorded.
For the duration of the pause, the following will be considered for each subsequent delivery attempt.
- Does the message match the domain (either the RFC5321.MailFrom domain or the RFC5322.From domain, depending on the smtp_pattern or smtp_match_pause_domain configuration) of the message that triggered the pause, and
- Are any of the following true:
- The message recipient domain matches the recipient domain of the message that triggered the pause, or
- The throttling rule is the same as that used for the message that triggered the pause, or
- The throttling rule has the same list of domains as the list of domains in that used for the message that triggered the pause.
If the above evaluates to true, then the delivery attempt “matches” the pause. If multiple active pause records match a delivery attempt, then the earliest triggered pause is used.
Once a matching pause is found, the Pause Percentage is evaluated: if a Pause Percentage was configured in the rule that triggered the pause, then only the specified percentage of delivery attempts will be affected by the pause. Unaffected delivery attempts will proceed as normal.
This is determined by creating a random number between 0.0 and 100.0 for each delivery attempt and comparing to the Pause Percentage. In other words, GreenArrow relies on statistical normality of the random number generator to ensure we approximately honor the requested percentage, and small sample sizes may deviate from the configured Pause Percentage.
If the delivery attempt is affected by the pause, it will be deferred with the configured (or default) message.
If using the default messages (i.e. a message override is not specified), then the delivery attempt will be
considered status=connmaxout
.
Relay Servers
Delivery attempts through Relay Servers neither trigger pauses nor are affected by pauses. Relay Servers do not interact with the systems described in this document.
List or Remove Paused Domains
Paused domains may be reviewed or removed in the following ways:
- The “Paused Domains” screen in the user interface (shown below).
- The Paused Domains API.
- The greenarrow report paused_domains command.
- The greenarrow remove paused_domain command.
Paused Domains User Interface
Paused domains may be reviewed in the “Paused Domains” screen (found under the “Throttling Configuration” section).
Domains can be unpaused by clicking the “play” icon to the right of the table row.