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 integrationIntegration 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 projectENS: настройка интеграции
    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
  • Admin Panel
  • Senders
  • Amazon SES integration

Amazon SES integration

The platform can send email through Amazon Simple Email Service (SES). Sending is performed directly through the Amazon SES API — the platform assembles the finished message and passes it to SES via SendRawEmail; no SMTP connection is used. To receive delivery statuses (delivered, bounce, complaint), Amazon SNS is set up on the Amazon side — events are subscribed to the platform's webhook.

Sender configuration​

  • Go to the Senders — Email section
  • Create a new sender or edit an existing one
  • In the Type field, select Amazon SES

Connection parameters​

  • Region — the AWS region in which SES access is enabled (for example, eu-west-1);
  • Access key ID — the identifier of an IAM user's key that has permission to send through SES;
  • Secret key — the secret key of the same IAM user;
  • Configuration set name (optional) — the name of the SES configuration set. If set, messages will be sent with this set, which lets you attach tracking rules to them on the Amazon side.
note

The platform uses the specified keys as static credentials — you are responsible for IAM key rotation.

Receiving delivery statuses through SNS​

To let the platform receive delivery statuses, an SNS subscription is set up on the Amazon side:

  1. In the AWS console, in the SES service, create or use an existing configuration set and add an Event destination rule of type Amazon SNS to it;
  2. Create an SNS topic and subscribe the platform to it: in the endpoint, specify the webhook URL that the platform provides for receiving Amazon SES events;
  3. The platform automatically confirms the subscription after it is created (nothing to do manually).

After the configuration, the platform handles the following SNS event types:

Amazon SES eventNotification typeHow the platform accounts for it
Successful deliveryDeliveryDelivery event
Complaint (spam)ComplaintComplaint event
Bounce, type Permanent, subtype General/NoEmailBounceHard bounce (the address is treated as undeliverable)
Bounce, type Permanent, subtype SuppressedBounceSoft bounce
Bounce, type Transient or UndeterminedBounceSoft bounce
Bounce, subtype ContentRejected/AttachmentRejectedBounceNon-delivery (suppression) with no retry
SNS subscription confirmationAmazonSnsSubscriptionSucceededLogged only, no event is created
note

The webhook URL and its availability are an internal platform configuration: to obtain the exact URL and connection instructions, contact your support engineer.

Statistics specifics when working with Amazon SES​

  • Delivery, bounce, and complaint statuses arrive from Amazon with a slight delay after the actual sending, so values in reports for short periods may lag behind the actual ones;
  • Unsubscribes via the List-Unsubscribe header and clicks on unsubscribe links are accounted for by the platform as regular unsubscribe events;
  • As the main source of analytics, we recommend using the platform reports, and the Amazon SES data — for verification and diagnostics.

Connecting to a virtual sender​

After creating and configuring the sender, you need to add it to a virtual sender through the platform's user interface. To do this, open the platform, go to the Settings — Virtual senders section, and configure the rules for sending through the created sender.

For more details on virtual senders, see this article.

Last updated on Sep 24, 2026
Previous
Integration with Altcraft Cloud SMTP
Next
Integration with Sendsay
  • Sender configuration
    • Connection parameters
  • Receiving delivery statuses through SNS
  • Statistics specifics when working with Amazon SES
  • Connecting to a virtual sender
© 2015 - 2026 Altcraft, LLC. All rights reserved.