Knowledge base

Address warm-up

entries in this scenario: 42
enable-source-ip-limits-on-sending-ip<domain>criticalDirectiveImportant when sending through a proxy: the local address and the one the receiver sees are different.max-msg-rate<domain>criticalset by the HubDirectiveIt counts both deliveries and bounces — this is not “successful messages per hour.”max-smtp-out<domain>criticalset by the HubDirectiveThe main lever of pressure on the receiver: it sees the limit multiplied by the number of your addresses.smtp-source-hostGlobalcriticalDirectiveBinds outgoing connections to a local address or CIDR range and sets the name in the SMTP greeting.virtual-mta<virtual-mta-pool>criticalset by the HubDirectiveThe 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-max-msg-rate<domain>set by the HubDirectiveThe rate in backoff mode; without an explicit value the normal one is used — that is, the mode will slow nothing down.cold-virtual-mta<virtual-mta>DirectiveNames the cold sending address; how many messages it gets is set by a separate directive in the receiver block.max-cold-virtual-mta-msg<domain>DirectiveWarm-up built into the engine: part of the traffic is diverted to a new address while it builds reputation.max-connect-rate<domain>set by the HubDirectiveHow fast to open new connections to this recipient domainmax-smtp-msg-rate<virtual-mta>DirectiveThe only rate limit that counts the sending address as a whole rather than each queue separately.max-smtp-out<virtual-mta>set by the HubDirectiveThe overall ceiling of the sending address. Without the line there is none at all — queues add up without limit.source-ip-max-connect-rate<domain>DirectiveNot how many connections to hold, but how often to open them — for each address separately.source-ip-max-msg-rate<domain>DirectiveThe main one in the family: the manual directly names it for those who have several IPs in one sending address.source-ip-max-smtp-out<domain>DirectiveSplits the queue limit by address: each address matching the mask gets a number of its own.backoff-max-connect-rate<domain>DirectiveThe default is tricky: without an explicit value the regular connection rate is taken — that is, backoff does not slow connections down.backoff-max-data-volume-rate<domain>DirectiveThe same default trap: without an explicit value the regular volume limit is taken.max-data-volume-rate<domain>set by the HubDirectiveHow many bytes per interval, counting only successful deliveriesmax-smtp-data-volume-rate<virtual-mta>DirectiveThe only ceiling that counts volume rather than messages — and only the volume that got through.source-ip-max-data-volume-rate<domain>DirectiveThe only one in the family that counts what was delivered rather than attempts; without a suffix the number reads as bytes.The sending address — what it is made ofcriticalMechanismA 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.Complaints parsed by the node — and they are parsed secondcriticalMechanismMail that arrives at an address from the configured list is parsed as a complaint report; the parsing order matters — the complaint processor runs after the bounce processor.A queue is a receiving server together with a sending addresscriticalMechanismThe engine groups messages by the “recipient domain plus sending address” pair: one domain from two addresses is two independent queues with their own counters, connections and mode.Four ways to say “slower”criticalMechanismMessages, data volume, connection rate and number of connections — each has its own limit, and each has a “per source address” variant and a backoff mode twin.Reserved merge variable namescriticalMechanismSome merge variable names are taken by the engine: you cannot give your own variables these names.The sender names the stream for each messagecriticalMechanismThe 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 themcriticalMechanismA 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.The stream is named by a header, if the source is allowed to do socriticalMechanismA message header names the stream; the source the message was submitted from must have permission to process the header, and the header is stripped before delivery.A group of sending addresses with traffic sharesMechanismA 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 engineMechanismA 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.Personalization inside the engineMechanismVariables are set per recipient, and the node substitutes them at delivery — one submitted message goes to many recipients with different content.Sending windows set in the message itselfMechanismA header carries one or more intervals during which the message may be sent; the schedule cancels the message’s lifetime, and the message bounces when the windows run out.Three pool rules the manual states directlyMechanismRotation-based distribution, inheritance of settings by members with the member’s own values overriding, and a namespace shared with sending addresses.Mail merge via SMTP extensionsMechanismMail merge over SMTP: XMRG instead of MAIL FROM, XDFN with variables before each recipient, and XPRT instead of DATA for each part.Numbered merge partsMechanismNumbered pieces of a message for multi-part merges: the first is implied, each number is used once.Two priorities, and which of them winsMechanismQueue priority decides which recipients get connections first; recipient priority reorders messages within one queue and cannot overtake a queue.Introducing a new address with part of someone else's trafficcriticalProcedureA warmed-up address hands its partner the first messages of the day to each receiver; the counters reset at midnight and survive a restart.show vmta-settingsCommandPrints the settings of one sending address: name, limits, outbound addresses and signing keys.set priorityCommandChanges the priority of the selected messages and thereby their delivery order.Sending addresses through the configuration APIAPI endpointCreates, reads, extends and deletes sending addresses with requests — as directive lines in JSON.Sending addresses that have a queueAPI endpointReturns sending addresses that currently have mail in the queue, by number of recipients in descending order.Submitting a message over HTTPAPI endpointAccepts a message as a JSON request over HTTPS instead of an SMTP session — with recipients, substitutions and content.Sending addressesMonitor screenSending addresses that have mail in the queue: recipients, volume, connections; each has a top domains page.