Skip to main content
Altcraft Docs LogoAltcraft Docs Logo
User guide iconUser guide
Developer guide iconDeveloper guide
Admin guide iconAdmin guide
English
  • Русский
  • English
Login
    Getting StartedAdministrator documentationFunctional characteristics
      Technology descriptionarrow
    • Architecture OverviewComponent Description
        Deployment schemesarrow
      • Basic schemeFail-safe schemeTypical Placement in Infrastructure
    System requirements
      Admin Panelarrow
      • Account areaarrow
        • Accountsarrow
        • Account UsersAccount Virtual SendersAccount Database Indexes
        TariffsExternal data configurationLDAPTasksSchedule JobsGlobal Stop ListsWebversion Store PoliciesIn-App Storage Settings
        Settingsarrow
      • Databases
          Accessarrow
        • AdminsAPI tokens
        Notifiers
          MTAarrow
        • Default rulesRetry rulesLock rulesBounce patternsStrategiesKeysISPsPools
      Nodes
        Sendersarrow
      • EmailSMSEvent generatorIntegration with Altcraft Cloud SMTPAmazon SES integrationAKMTA interaction with SMTP relaysIntegration with Sendsay
        Reportsarrow
      • Audit JournalData Usage
        Toolsarrow
      • ARF decoderURL decoderSMID decoderLicense
      Platform installationarrow
    • Automatic installationManual installationRunning the platform in a Docker container
      Platform configurationarrow
    • Configuration fileDomain settingsLDAP access configurationSending Email via SMTP relayPixel and push domain configurationCluster and Replication SetupSystem notifications configurationProcesses UNIX sockets configurationHTTPS ConfigurationMigrating from MongoDB Community to Percona ServerAdding sender IP addressesData Encryption in Percona Server for MongoDBDeduplication request settingsBackup with Percona Backup for MongoDBPostgreSQL database for Market dataProxy server settingsKeycloak Integration with AltcraftGetting HTTP service statusesConfiguring MongoDB log rotation
        Configuration of system constants and directoriesarrow
      • Filtering bot actionsDirectory of gender markers
      Custom Channelsarrow
    • Creating a Channel
        Pipelinesarrow
      • MessageScheduleListenerModerateStop
          Pipesarrow
        • HTTP RequestPackUnpackEventerSchedulerSelectorSQLStore SetStore GetLogResultErrorRMQ Publisher
      External Objects (Entities)Templating LanguageSending FilesPresets (Field Sets)DebuggingTechnical Limitations
      Platform maintenancearrow
    • Personnel requirementsPlatform maintenance processesPlatform updatingBackup and recoveryTransferring the platform to a new serverCreating, deleting, and populating tables for statistics in ClickHouseUsing the aktool utilityUsers and directories engaged by the platformEvent Processing Monitoring (procevent)Platform service monitoringProcess and mailing monitoring via Prometheus
      Extraarrow
    • System page customizationSend Message IDClickHouse History Migration GuideInstructions for migrating history to ClickHouseUtility for importing push subscriptions to Firebase projectUtility for importing push subscriptions to Firebase projectIP address warm-upENS: настройка интеграции
    Processing HTTP/HTTPS traffic
      Administrator APIarrow
      • Accounts admin apiarrow
        • Restricted accessarrow
        • Account Activation and DeactivationAccount Freeze and Unfreeze
        Get accounts listAdd a new accountDelete the account
        Account usersarrow
      • Update an Existing AccountAdd a new userDelete a userGet a list of usersSending a Welcome Email
        Nodesarrow
      • Synchronize node MTA configurationGet nodes listGet node MTA statusActivate node MTADeactivate node MTA
        Senders admin apiarrow
      • Create or update AKMTA senderGet AKMTA sender informationAssign account to senderGet senders listDelete senderRestore sender
          Sender queuearrow
        • Get sender queue informationHold sender queueRelease sender queueClear sender queue
        Virtual sendersarrow
      • Get virtual senders listGet virtual sender informationCreate virtual senderUpdate virtual senderClone virtual senderDelete virtual sender
    Documentation Archive
  • Extra
  • IP address warm-up

IP address warm-up

What is IP warm-up and why it is needed​

Warm-up is the gradual increase of the sending volume from a new IP address to build a positive reputation with mail providers (Gmail, Yahoo, Outlook). Providers use the IP address to identify the sender, track its behavior, and assign a reputation.

An IP address that is new to your infrastructure may have no sending history; it may also have been used by another sender before. If you start mass sending right away, providers may throttle acceptance, reject messages, or route them to spam. In Altcraft Platform, warm-up is performed by the AKMTA sender: the volume is controlled by sending strategies, and the provider response — by retry and lock rules.

Preparation​

Before starting the warm-up, configure the sending infrastructure:

  • DNS records — for each sender IP address, create an A record on the sender domain, set up PTR, SPF, DKIM, and DMARC records. The step-by-step scheme is described in Email: ISP interaction guidelines;
  • IP addresses on the node — the addresses must be available on the sending node and added to the AKMTA sender settings;
  • DKIM and pools — DKIM keys are created in the admin panel; when sending from different domains, use pools;
  • Sending service — if you use external services (for example, Amazon SES instead of or alongside AKMTA), verify the domain and lift the sandbox restrictions: in Amazon SES, you need to obtain production access separately;
  • Clean list — send only to confirmed subscriptions; addresses with hard bounces are added by the platform to the global stop list;
  • List segmentation — split the list from the most active subscribers to the least active and start with the active segments.

Gmail's TLS, DMARC alignment, and one-click unsubscribe requirements for bulk mailings are listed in the Gmail sender guidelines.

Volume control via AKMTA strategies​

Build the warm-up plan based on your target volume, mailing regularity, and the distribution of recipients across mailbox providers. Increase the volume after evaluating the results of previous sendings; pause the increase if bounces, deferrals, or complaints grow.

In the platform, the daily volume is set via sending strategies: the product of Concurrent connections, Messages per connection, and Time interval determines the speed, and the Average strategy speed per IP address table shows the estimated volume per minute, hour, and day for a single IP. For warm-up, create a separate strategy with a low speed and raise it in steps as the metrics stabilize.

The speed is configured separately for each ISP: the Speed rules in the sender settings let you set different speeds for IP address and provider combinations, including Gmail, Yandex, Mail.ru, and Outlook.com. This is useful when providers respond to warm-up differently.

note

Ready-made warm-up schedules depend on the sending service. For example, the generic Twilio SendGrid guide contains a 21-day plan for a target volume of 1,000,000 messages per day, while automatic warmup of standard dedicated IP addresses in Amazon SES is designed for 45 days. Use them as a reference for your own strategy, not as a universal rule.

Retry and lock rules​

The response to provider rejections during warm-up is controlled by AKMTA rules:

  • Retry rules — if the provider does not accept a message immediately (a temporary 4xx rejection), the platform retries the sending. Each rule defines the retry mode (same IP, another IP of the same node, any IP of any node), the number of retries — no more than 10, the interval, and its growth type: fixed, geometric, or random;
  • Lock rules — after sustained negative responses, the platform suspends sending to the provider entirely or from the current IP address for a specified time.

When the retries are exhausted or the message retention period in the sender queue expires (three days by default; the value is set in the platform configuration), the message is registered as undelivered — with the reason shown in the undeliveries report.

For warm-up this means: temporary deferrals do not stop the sending — messages are retried according to the retry rules, while a provider's sustained rejections are taken out of sending by the lock rules.

Monitoring​

During the warm-up, track the indicators in the platform reports:

MetricWhere to look in Altcraft
Deliverability and undeliveriesUndeliveries report — reasons per campaign
BouncesBounces report: the platform records hard bounces in the stop list and retries soft bounces by the retry rules. The guideline for hard bounces is up to 0.5% of sent messages (ISP interaction guidelines)
ComplaintsThe Complaints and Complaint rate metrics in the channels report. Internal guideline: on average no more than 0.07%, with 0.1% as the limit; for Gmail, watch the spam rate in Postmaster Tools — 0.3% and higher is the risk zone
PostmastersExternal provider services — postmaster setup
caution

If the bounce rate or complaint rate grows — slow down or stop the warm-up and find the cause. To do this, lower the speed in the sending strategy and resume sending at a reduced volume, increasing it after the metrics stabilize.

To monitor reputation, use the provider tools: Google Postmaster Tools, Mail.ru Postmaster, Yahoo Sender Hub and CFL, Microsoft SNDS — the setup order is described in the postmaster setup article. FBL complaint reports are received by the incoming mail server built into AKMTA: it recognizes ARF reports in the abuse@, abusemaster@, and fbl@ mailboxes and registers the complaint in campaign statistics. The setup scheme is described in Email: ISP interaction guidelines.

Multiple IP addresses​

  • Each new IP address is warmed up independently: the speed strategy is set per IP;
  • If you already have warmed-up IPs — they keep working while the new one is warming up: the distribution across IPs is determined by the sender Speed rules;
  • Do not add IP addresses without need and do not use switching between them to bypass blocks: providers recognize the "snowshoeing" tactic — spreading spam across many IP addresses and domains (Spamhaus glossary). Each IP address needs its own warm-up plan and regular traffic.

Transactional and marketing campaigns​

  • Marketing campaigns: strictly follow the warm-up plan and raise the speed in steps;
  • Transactional messages: the volume is not controlled by the schedule — it depends on user actions. When moving to a new IP address, migrate the flow gradually, and for urgent messages arrange sending through already running infrastructure in advance. Keep monitoring bounce and complaint metrics.

What not to do​

  • Do not send to the entire list at once;
  • Do not use purchased or outdated email lists;
  • Do not change the IP address in the middle of the warm-up;
  • Do not ignore complaints and bounces;
  • Do not expand sending to less active segments until the metrics stabilize.
Last updated on Oct 3, 2026
Previous
Utility for importing push subscriptions to Firebase project
Next
ENS: настройка интеграции
  • What is IP warm-up and why it is needed
  • Preparation
  • Volume control via AKMTA strategies
  • Retry and lock rules
  • Monitoring
  • Multiple IP addresses
  • Transactional and marketing campaigns
  • What not to do
© 2015 - 2026 Altcraft, LLC. All rights reserved.