Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
D
e
m
o
Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
D
e
m
o
Home
Features
Modules
Integrations
PowerMTA Docs
MailerQ Docs
Pricing
Blog
Home
Knowledge base
Knowledge base
PMTA knowledge base
›
Scenario
Sending address rotation
entries in this scenario: 66
default-virtual-mta
<source>
critical
set by the Hub
Directive
Applies when the stream has not been chosen by anything higher up — a header, a rule or a merge variable.
domain-key
Global
critical
Directive
Links a selector, a domain and a private key; the first entry whose domain matches or is a parent domain wins.
domain-key
<virtual-mta>
critical
set by the Hub
Directive
Stream keys are stronger than general ones: when both levels match, these win.
host-name
<virtual-mta>
critical
Directive
The same directive written inside a sending address; it overrides the node’s general name but yields to the name tied to the address itself.
host-name
Global
critical
Directive
The first name is the main one; which one ends up in the greeting is decided by a five-step resolution.
process-x-virtual-mta
<source>
critical
set by the Hub
Directive
A permission for the source — with it the header selects the stream and is stripped before delivery; without it the header does nothing and travels to the recipient.
smtp-proxy-source-host
Global
critical
Directive
The vendor’s way to send through a proxy — local address, proxy, client address and greeting name in one line.
smtp-source-host
Global
critical
Directive
Binds outgoing connections to a local address or CIDR range and sets the name in the SMTP greeting.
smtp-source-host
<virtual-mta>
critical
set by the Hub
Directive
The same directive written inside a sending address — it is what makes that address a separate sending identity.
virtual-mta
<virtual-mta-pool>
critical
set by the Hub
Directive
The line lists a sending address in a pool; without a number the members are used round-robin, with a number — in the given proportion, and the shares must add up to 100.
backoff-reroute-to-virtual-mta
<domain>
set by the Hub
Directive
The only one in the family that does not slow down but moves: messages leave from another address while the queue is in backoff mode.
backoff-to-normal-after
<domain>
set by the Hub
Directive
After what interval the queue returns to normal mode by itself
backoff-to-normal-after-delivery
<domain>
set by the Hub
Directive
Whether one successful delivery returns the queue to normal mode
backoff-upon-all-sources-disabled
<domain>
Directive
The vendor warns directly: the queue will not come back by itself — a return timer is needed.
cold-virtual-mta
<virtual-mta>
Directive
Names the cold sending address; how many messages it gets is set by a separate directive in the receiver block.
disabled-source-ip-notify
<domain>
Directive
The only thing that makes a quiet mechanism noticeable: a message arrives both on disabling and on re-enabling.
domain-key
<virtual-mta-pool>
Directive
A pool hands the declaration to each of its members — there is no such thing as a shared key for a pool.
include-headers-from
<virtual-mta>
Directive
The same line as at the node level; set here, it does not replace the common one but adds to it.
invalid-virtual-mta-fallback
Global
Directive
Instead of a refusal, the message leaves through the stream named here; it works only at submission and only if the refusal is turned off in the source.
max-cold-virtual-mta-msg
<domain>
Directive
Warm-up built into the engine: part of the traffic is diverted to a new address while it builds reputation.
max-smtp-msg-rate
<virtual-mta-pool>
Directive
The same setting written for a group: the pool hands the value out to its members rather than dividing it among them.
max-smtp-out
<virtual-mta-pool>
Directive
The pool line goes to each member in full — it is not a reserve shared by the group.
proxy-include-tlv
<virtual-mta>
set by the Hub
Directive
Adds a field with the queue domain to the PROXY header; requires the second protocol version.
proxy-protocol
<virtual-mta>
set by the Hub
Directive
The HAProxy header version, 1 or 2; the default is the first.
reenable-source-ip-after
<domain>
Directive
The default is never: an address disabled without an explicit deadline will never come back.
reject-invalid-virtual-mta
<source>
Directive
The default is to reject; this same default quietly cancels the fallback stream until it is turned off here.
reroute-to-virtual-mta
<domain>
Directive
The queue stays the same; what changes is the second half of its name — the address messages leave from.
smtp-proxy-source-host
<virtual-mta>
set by the Hub
Directive
The same directive written inside a sending address; it replaces the node’s common setting and forbids the regular form and use-proxy in the same block.
suppression-lists
<virtual-mta-pool>
Directive
The same line as for a sending address, written a level higher — every pool member gets it.
use-proxy
<virtual-mta>
Directive
A list of proxy blocks in backup order; the second is used only when the first did not respond.
add-x-virtual-mta-header
<source>
Directive
The node itself signs the message with the name of the stream it went out through; the header reaches the recipient.
header
<pattern-list>
Directive
The only rule with a parameter — first the header name, then the pattern; the entire header content is matched, including spaces and line breaks.
include
<virtual-mta>
Directive
The same directive written inside a sending address — the included lines become its settings.
include-headers-from
<virtual-mta-pool>
Directive
The same line written one level up; every pool member gets it.
mail-from
<pattern-list>
set by the Hub
Directive
Matches the address from SMTP MAIL FROM — where bounces are returned — not the From address the recipient sees.
max-smtp-data-volume-rate
<virtual-mta-pool>
Directive
The line is written once, but each member applies its own copy — the total volume is a multiple of the number of addresses.
rcpt-to
<pattern-list>
Directive
Matches the address from SMTP RCPT TO; with several recipients the stream of the first match applies to the whole message.
rewrite-list
<virtual-mta-pool>
Directive
The same line as for a sending address, written a level higher — every pool member gets it.
rewrite-list
<virtual-mta>
Directive
Attaches a named list; messages leaving through this sending address go through its rules.
retain-x-virtual-mta
<source>
Directive
The default is to remove it; a header left in place carries internal stream names to the recipient.
How the node responds to the receiving server's words
critical
Mechanism
Matches SMTP replies against regular expressions and changes the queue mode on a match — the very trigger that all of the backoff mode machinery waits for.
The sending address — what it is made of
critical
Mechanism
A named set of everything that is a property of the address: which IP the message leaves from, how the node introduces itself, what it signs with and how fast it sends.
Backoff mode — the queue's second personality
critical
Mechanism
A queue that a receiver has started refusing switches to a parallel set of limits, retries and routes — ten directives that act only in this mode.
Reserved merge variable names
critical
Mechanism
Some merge variable names are taken by the engine: you cannot give your own variables these names.
A name, an address and a greeting name — what a sending address consists of
critical
Mechanism
The definition is small, and two of its properties are easy to miss — omitting the address line silently inherits the node’s settings, and several addresses in one block rotate round-robin.
The sender names the stream for each message
critical
Mechanism
The message carries the name of the stream it should be sent through — the choice is made by the submitting program, not by the node configuration.
Six ways to choose a stream and the order among them
critical
Mechanism
A message’s stream is set by a merge variable, an API call, a header, a pattern rule, a listener and a source default — the manual lists them by precedence.
Headers the sender uses to control delivery
critical
Mechanism
Six control headers let the submitting side choose a stream, tag a message with a job, set signing options and the key, the envelope identifier and the schedule; each is allowed separately and per source.
A group of sending addresses with traffic shares
Mechanism
A named group of sending addresses; without shares messages are distributed in rotation, with shares in the given proportion, in steps of a tenth of a percent.
Warm-up built into the engine
Mechanism
A warmed-up address hands the first N messages of the day for each receiver to its cold partner; the partner sends them itself and builds history.
The stream is chosen by matching the envelope or a header
Mechanism
A named rule list matches the return address, the recipient or a header against regular expressions and assigns a stream on the first match.
The regular expression dialect
Mechanism
Configuration regular expressions are Perl-compatible, based on the PCRE library: that is how sending address selection, reply rules, bounce categories, address lists and signing headers are written.
The node takes the stream whose address matches the connection address
Mechanism
The source default accepts a reserved value instead of a stream name — then the node chooses the stream whose sending address matches the address the connection arrived at.
Selecting a sending address by message content
Mechanism
Regular expressions are matched against a header, the return address or the recipient and select a sending address or assign a priority; lists can call each other.
Spreading a stuck queue across several addresses
Mechanism
Rerouting not to one address but to a pool: messages are spread evenly across its members.
Removing a sending address — and what happens to its queue
critical
Procedure
The definition is removed with an edit and a reload; messages still tied to the removed address bounce with their own code.
Change a sending address when messages are already queued
Procedure
New connections pick up the new definition right after the configuration reload; already open ones live out their lives on the old one.
<virtual-mta>
critical
Configuration block
One outgoing address with a greeting name and its own limits — the identity the receiving server sees.
<pattern-list>
Configuration block
Regular expressions matched against the sender, the recipient or a header to choose a sending address.
disable source
critical
Command
There is an option to bring it back automatically after an interval — without it the address stays disabled forever.
enable source
Command
Returns an address early — and this is the only way if no timer was set when it was disabled.
show disabled sources
Command
The only window into the disabling mechanism: shows both manual disablings and those made by mailbox provider rules.
show vmtas
Command
Prints the sending addresses: how many recipients, kilobytes and connections each has.
Sending addresses through the configuration API
API endpoint
Creates, reads, extends and deletes sending addresses with requests — as directive lines in JSON.
Addresses present on the machine
API endpoint
Lists the addresses configured on the machine itself.
Sending addresses
Monitor screen
Sending addresses that have mail in the queue: recipients, volume, connections; each has a top domains page.