Ellipse Gradient for Header

Amazon SES Integration Guide

Amazon SES integrates with enterprise systems through regional HTTPS APIs, SMTP, bulk email operations, and event destinations such as Amazon SNS, Kinesis Data Firehose, and CloudWatch.

Amazon SES integration options at a glance

Amazon SES provides regional HTTPS APIs using AWS service protocols, an SMTP interface, bulk templated sending through SendBulkEmail, and raw or structured email content with attachments. SES can publish selected send, delivery, bounce, complaint, reject, open, click, and related events through Amazon SNS, Kinesis Data Firehose, or CloudWatch. Authentication uses AWS Signature Version 4 with IAM authorization for API calls, while SMTP uses SES SMTP credentials over TLS. Martini can orchestrate these mechanisms in workflows, expose APIs for internal applications, map message data, process asynchronous notifications, and apply throttling, retry, and reconciliation rules.

Integration pointSupported by Amazon SES?Common use casesHow Martini supports it
HTTPS APIsLimitedRegional SES APIs support sending simple, templated, and raw email, managing identities and templates, querying quotas and statistics, and administering configuration sets and suppression entries. The APIs use AWS service protocols rather than a conventional resource-oriented REST model.Martini can consume the regional SES HTTPS API in workflows, map request structures, and apply AWS authentication and error-handling logic.
SMTP interfaceYesThe SES SMTP interface supports applications that already use SMTP clients or libraries, with TLS and regional endpoints on supported ports.Martini can participate in an SMTP-based design where the deployment supports an SMTP client, although a dedicated SES SMTP capability is not confirmed.
Bulk and asynchronous APIsYesSendBulkEmail sends templated messages to multiple destinations, while final delivery outcomes are reported separately through event publishing or feedback mechanisms.Martini can batch eligible recipients, invoke SendBulkEmail, record message identifiers, and reconcile asynchronous outcomes.
Event destinationsYesConfiguration sets can publish selected send, delivery, bounce, complaint, reject, open, click, rendering-failure, and applicable delivery-delay events to SNS, Kinesis Data Firehose, or CloudWatch.Martini can receive SNS-delivered notifications through an exposed API and can normalize event data from an available AWS delivery path.
Webhooks and outbound callbacksLimitedSES does not provide a universal native webhook. Amazon SNS can forward selected SES notifications to HTTP/S endpoints, subject to subscription confirmation and SNS message validation.Martini can expose an HTTPS endpoint, validate SNS envelopes and signatures, and process notifications idempotently.
File and attachment contentLimitedAttachments are included in raw MIME messages or supported structured email content; SES does not provide a standalone file or attachment repository API.Martini can retrieve or receive source content, construct or map MIME or structured email data, and invoke the appropriate SES send operation.
AuthenticationYesHTTPS API calls use AWS Signature Version 4 with IAM users, roles, or temporary credentials. SMTP uses SES SMTP credentials over TLS.Martini can keep credentials in protected configuration or secrets management and orchestrate authenticated API calls with least-privilege permissions.
Statistics and analytics accessLimitedSES exposes quotas and sending statistics through APIs and can publish operational data through CloudWatch or Firehose rather than direct database access.Martini can schedule retrieval or process available event and monitoring data, then map it into an operational store or reporting API.

How Amazon SES exposes data and business events

Amazon SES HTTPS APIs

Amazon SES exposes regional HTTPS APIs for sending simple, templated, bulk, and raw email, as well as managing identities, configuration sets, templates, suppression entries, quotas, and statistics. The API uses AWS service protocols and regional resources rather than a conventional GraphQL or resource-oriented REST model.

Martini implementation pattern

Martini implementation pattern: A Martini workflow receives an application request or scheduled trigger, builds the SES request in the required format, signs it with AWS Signature Version 4 using a restricted IAM identity, invokes the regional endpoint, and records the response and SES message identifier.

Implementation sequence

Receive an email request or scheduled work item
Validate recipients, template data, Region, and configuration set
Map the canonical message to the SES request format
Sign and submit the regional HTTPS request
Store the SES response and correlation identifier
Route transient failures for bounded retry

Amazon SES bulk sending

The SendBulkEmail operation sends templated messages to multiple destinations with per-destination replacement data, subject to SES quotas and operation limits. The API accepts the submission while delivery outcomes are processed asynchronously.

Martini implementation pattern

Martini implementation pattern: A scheduled or event-driven workflow reads eligible recipients, groups them according to applicable limits, maps each destination's replacement data, submits batches, and stores enough context to reconcile later SES events without resending completed work.

Implementation sequence

Retrieve eligible recipients from the source system
Partition recipients according to SES limits
Build template and per-destination replacement data
Submit the SendBulkEmail request
Record batch status and returned identifiers
Reconcile later delivery and failure events

Amazon SES event destinations

SES configuration sets can publish selected send, delivery, bounce, complaint, reject, open, click, rendering-failure, and applicable delivery-delay events to Amazon SNS, Kinesis Data Firehose, or CloudWatch. Event availability depends on the feature, configuration, and Region.

Martini implementation pattern

Martini implementation pattern: Configure the SES event destination and route SNS notifications or another available event path to a Martini API or workflow. Martini validates the notification envelope, handles subscription confirmation where needed, normalizes event fields, and updates downstream systems idempotently.

Implementation sequence

Associate the required event types with a configuration set
Submit messages with the configuration set selected
Receive the AWS event notification
Validate the SNS envelope and notification signature where applicable
Map event type, destination, message identifier, and timestamp
Update downstream status using duplicate-safe processing

Amazon SES SMTP

SES provides a regional SMTP interface for applications that already use SMTP clients or libraries. It uses SES SMTP credentials, TLS, and supported ports, and is an alternative to implementing the HTTPS API and SigV4 request construction.

Martini implementation pattern

Martini implementation pattern: Where the Martini deployment supports an SMTP client, a workflow can transform an enterprise email request into an SMTP message and submit it using protected SES SMTP credentials over TLS. API-based integration is generally easier to standardize when the required SES operations are available.

Implementation sequence

Receive and validate the enterprise email request
Construct the text, HTML, or MIME message
Load protected regional SMTP credentials
Submit the message over TLS to the SES SMTP endpoint
Record the application correlation identifier
Process later SES events through the configured event destination

Amazon SES raw email and attachments

SES supports raw MIME messages and attachments through SendRawEmail and supported structured email-content models. It does not provide a general-purpose file or attachment storage API, so the integration must construct valid message content.

Martini implementation pattern

Martini implementation pattern: Martini retrieves or receives attachment content, maps headers and message parts, constructs the required MIME or structured content, and invokes SES while enforcing size, encoding, and content-validation rules before submission.

Implementation sequence

Retrieve approved attachment content
Validate size, media type, and message metadata
Construct multipart MIME or structured email content
Encode binary content as required by the SES operation
Submit the raw message through the regional API
Record the send result and downstream event correlation

Common Amazon SES integration patterns

Pattern 1: Send transactional email through an API façade

When to use this pattern

Use this pattern when multiple enterprise applications need a consistent email contract rather than direct access to AWS credentials or SES request formats. Martini centralizes validation, template selection, IAM access, correlation, and error handling.

Integration direction
Salesforce
Martini
Amazon SES
Example Mapping
Amazon SES FieldCanonical FieldTarget Field
toAddressesrecipientAddressesDestination.ToAddresses
templateNameemailTemplateTemplate.TemplateName
businessDatatemplateDataTemplate.TemplateData
configurationSetsendingProfileConfigurationSetName
Martini implementation pattern

Expose a Martini REST API that validates the caller and request, applies recipient and template business rules, maps the canonical model to SendEmail or a templated request, and invokes the regional SES API with SigV4. Store the SES message identifier and return a controlled response; use bounded retries only for transient failures to avoid duplicate sends.

Martini capabilities used
  • REST APIs
  • workflows
  • API consumption
  • data mapping
  • business rules
  • secrets management
  • error handling

Pattern 2: Process bounce and complaint events

When to use this pattern

Use this pattern when customer, contact, or operational systems must react to SES delivery failures and complaints. It separates asynchronous delivery outcomes from the initial send request and supports suppression or service follow-up rules.

Integration direction
Amazon SES
Amazon SNS
Martini
Salesforce
Example Mapping
Amazon SES FieldCanonical FieldTarget Field
notificationTypeemailEventTypeEmailStatus.EventType
mail.messageIdproviderMessageIdEmailStatus.ProviderMessageId
bounce.bouncedRecipientsfailedRecipientsContact.EmailDeliveryFailures
complaint.complainedRecipientscomplaintRecipientsContact.EmailComplaints
Martini implementation pattern

Configure SES event publishing through SNS and expose a Martini API for SNS delivery. Validate subscription and notification messages, normalize the event, deduplicate using message identifiers and event attributes, then update the target system and suppression-related state. Record delayed or out-of-order events for reconciliation.

Martini capabilities used
  • APIs
  • webhooks
  • workflows
  • data mapping
  • business rules
  • error handling

Pattern 3: Submit bulk templated email

When to use this pattern

Use this pattern for campaign, reminder, or notification workloads where many recipients can be processed through SendBulkEmail with per-destination replacement data. It provides controlled batching instead of assuming unlimited SES throughput.

Integration direction
ServiceNow
Martini
Amazon SES
Example Mapping
Amazon SES FieldCanonical FieldTarget Field
recipientListeligibleRecipientsDefaultEmailTags.Destinations
templateDatarecipientTemplateDataBulkEmailEntry.ReplacementEmailContent
campaignIdbusinessCorrelationIdWorkflow.SendBatchReference
configurationSetsendingProfileConfigurationSetName
Martini implementation pattern

A scheduler or source application starts a Martini workflow that reads eligible recipients, applies suppression and eligibility rules, partitions them according to SES quotas, and submits SendBulkEmail requests. The workflow records each batch and correlation identifier, throttles submissions, and reconciles later delivery events without automatically repeating successful batches.

Martini capabilities used
  • scheduled workflows
  • workflow orchestration
  • data mapping
  • business rules
  • batch processing
  • error handling

Pattern 4: Normalize SES delivery analytics

When to use this pattern

Use this pattern when operational or reporting systems need a consistent view of send, delivery, bounce, complaint, reject, or engagement events from SES and AWS destinations.

Integration direction
Amazon SES
Amazon Kinesis Data Firehose
Martini
PostgreSQL
Example Mapping
Amazon SES FieldCanonical FieldTarget Field
eventTypedeliveryEventTypeses_delivery_events.event_type
mail.messageIdproviderMessageIdses_delivery_events.message_id
mail.timestampsubmittedAtses_delivery_events.submitted_at
eventTimestampoccurredAtses_delivery_events.occurred_at
Martini implementation pattern

Process an available event delivery or notification path in Martini, normalize provider-specific payloads, enrich records with Region and configuration-set context, and write them to an operational database or reporting API. Use idempotent keys and preserve raw references for troubleshooting while limiting sensitive message content in logs.

Martini capabilities used
  • workflows
  • API consumption
  • data transformation
  • database integration
  • business rules
  • monitoring
  • error handling

Applications commonly integrated with Amazon SES

Amazon SES is commonly placed behind enterprise applications and AWS event services that need controlled email delivery, event processing, monitoring, or audit. Martini can mediate these flows without implying a direct native integration between SES and each application.

Application Scenario Direction Martini Pattern
Amazon SNS Receive SES bounce, complaint, delivery, and other selected event notifications, then forward them to downstream consumers. Amazon SES → Amazon SNS → Martini Configure an SES event destination through SNS, expose a Martini API for SNS delivery, validate subscription and notification messages, then normalize events for downstream workflows.
Amazon CloudWatch Monitor SES sending metrics, delivery behavior, bounces, complaints, and operational thresholds. Amazon SES → Amazon CloudWatch → Martini Associate SES events or metrics with CloudWatch, then use Martini workflows or APIs to normalize available monitoring data and route operational alerts or audit information.
Amazon Kinesis Data Firehose Stream SES event data into analytics or storage destinations for reporting and historical analysis. Amazon SES → Amazon Kinesis Data Firehose → Martini Publish selected SES events to Firehose and process an available downstream delivery or API path with Martini, mapping event types and identifiers into an operational or analytics model.
AWS Lambda Run custom processing for SES events delivered through SNS or another AWS event path. Amazon SES → Amazon SNS → AWS Lambda Use SES event publishing and SNS routing for AWS-side processing, while Martini can mediate business-system updates before or after Lambda execution where an HTTP or API boundary is available.
Amazon S3 Store downstream event data or email-related content for retention, audit, or analysis where the configured AWS architecture supports that path. Amazon SES → Amazon S3 → Martini Route event or content data through the configured AWS service path, then use Martini to transform, validate, and expose or persist the resulting audit information.
Salesforce Send transactional or customer-engagement email through a centrally controlled SES service and synchronize delivery, bounce, or complaint outcomes with customer records. Salesforce → Martini → Amazon SES Expose a Martini API for Salesforce requests, map recipient and template data to SES SendEmail or SendBulkEmail, and process SES events through SNS into Salesforce status updates.
ServiceNow Use SES for outbound notifications and process delivery failures or complaints in operational workflows. ServiceNow → Martini → Amazon SES Orchestrate notification requests through Martini, apply IAM-authenticated SES API calls, and route validated bounce or complaint events back to ServiceNow workflows.
Amazon Pinpoint Coordinate AWS messaging and engagement architectures where the selected feature and account design uses SES-related email delivery infrastructure. Amazon Pinpoint → Martini → Amazon SES Treat the service relationship as architecture-specific, verify the applicable AWS path, and use Martini to mediate confirmed APIs or event destinations rather than assuming a direct native integration.

How to build a Amazon SES integration in Martini

Objective

Establish the regional SES connection and protect the credentials required for API or SMTP access.

Instructions in Martini

  • Select the SES Region and endpoint explicitly
  • Use an IAM role, temporary credentials, or restricted access keys for HTTPS API calls
  • Configure AWS Signature Version 4 for API requests
  • Store credentials and configuration in protected Martini secrets or environment configuration
  • Verify sender identities, sandbox status, quotas, and required IAM actions

Objective

Select the event, API, or schedule that starts the integration flow.

Instructions in Martini

  • Use an exposed Martini API for application-driven email requests
  • Use a webhook-capable Martini API for SNS-delivered SES notifications
  • Use a scheduler for statistics retrieval or bulk processing
  • Use workflow triggers for internal event-driven orchestration

Objective

Acquire the source email request, recipient data, SES event, or operational statistics.

Instructions in Martini

  • Receive and validate application payloads before sending
  • Retrieve eligible recipients and template data from the source system
  • Accept SNS subscription confirmation and notification messages where applicable
  • Retrieve paginated SES resources or statistics until continuation tokens are exhausted

Objective

Coordinate the SES call, event processing, enrichment, and downstream actions as a maintainable workflow.

Instructions in Martini

  • Separate initial send acceptance from asynchronous delivery processing
  • Choose SendEmail, SendRawEmail, or SendBulkEmail based on content and volume
  • Associate the correct configuration set with event-producing sends
  • Persist correlation identifiers and processing state

Objective

Convert enterprise data into SES message, destination, template, MIME, or event structures.

Instructions in Martini

  • Map recipient addresses, template names, replacement data, and configuration sets
  • Construct valid MIME content for raw email and attachments
  • Normalize SNS or SES event fields into a canonical delivery model
  • Validate required template variables and content encoding

Objective

Enforce sending, suppression, privacy, and operational policies before data reaches SES or downstream systems.

Instructions in Martini

  • Check sender identity, recipient eligibility, and suppression behavior
  • Apply Region-specific configuration and quota rules
  • Avoid logging complete message bodies or unnecessary recipient data
  • Use business correlation identifiers and duplicate-safe event processing

Common Amazon SES data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
Email identitiesVerified email addresses or domains authorized to send through SES.Identity governance, configuration databases, deployment administrationMartini can retrieve or administer identity-related data where permitted, while keeping Region, verification state, and IAM scope explicit.
Configuration setsAssociate outgoing messages with event publishing, tracking, reputation settings, and delivery behavior.Application configuration stores, deployment management, monitoring systemsMartini can map a business sending profile to a configuration set and ensure the set is included in relevant send requests.
Email templatesStore reusable subject and body content with replacement data for templated email operations.Content management, campaign administration, application configurationMartini can validate template variables, map locale and business data, and invoke templated send operations.
Email messagesRepresent messages submitted through SendEmail, SendRawEmail, or SendBulkEmail, including destinations, content, headers, templates, and attachments.Business applications, customer databases, audit storesMartini can validate, transform, enrich, and submit messages, while recording SES message identifiers and correlation data.
Suppression list entriesIdentify addresses suppressed because of bounces, complaints, or account-level suppression settings.Customer databases, CRM systems, marketing preference storesMartini can retrieve or process suppression information and apply business rules that prevent repeated delivery attempts.
Sending statistics and quotasTrack regional sending rate, maximum quota, sent-message counts, bounces, complaints, and delivery statistics.Monitoring platforms, operational databases, reporting systemsMartini can schedule retrieval, normalize metrics, and route threshold breaches or audit records to other systems.

Authentication and security considerations

AWS API authentication

Amazon SES HTTPS API requests use AWS Signature Version 4 and IAM authorization. Use a least-privilege role, temporary credential, or restricted access key with only the required SES actions and an explicit Region.

SMTP security

The SES SMTP interface uses separate SMTP credentials over TLS. Regional endpoints and supported ports must be configured consistently with the deployment.

Sending controls

  • Verify sending email addresses or domains before production use.
  • Account for sandbox restrictions and Region-specific quotas.
  • Store long-lived secrets in protected Martini configuration or secrets management.
  • Limit access to message content, recipient data, and delivery events according to privacy requirements.

Operational considerations for Amazon SES integrations

Quotas and regional resources

SES sending rates, maximum quotas, verified identities, configuration sets, sandbox status, and permissions can vary by Region. Workflows should make the Region explicit and throttle or batch submissions.

Asynchronous outcomes

A successful API response indicates acceptance by SES rather than final delivery. Reconcile event notifications and account for duplicate, delayed, and out-of-order events.

Retries and idempotency

Use bounded retries with backoff for transient failures. Store business correlation identifiers and durable send state because retrying after a lost response can result in duplicate email.

Content and schema validation

  • Validate template variables before submission.
  • Construct MIME boundaries, headers, encodings, and attachments correctly.
  • Handle pagination tokens when enumerating SES resources.
  • Test suppression, bounce, complaint, SNS confirmation, and signature-validation paths.
  • Monitor message identifiers, event timestamps, retry counts, and final processing status without unnecessarily logging message bodies.

Why use Martini instead of scripts or point-to-point integrations?

Centralized integration logic

Martini provides a controlled API and workflow boundary between enterprise applications and Amazon SES. This avoids distributing AWS signing, IAM details, template mapping, quota handling, and event-processing logic across individual applications.

Reusable orchestration

Workflows can standardize transactional sending, bulk batching, SNS notification processing, suppression rules, delivery reconciliation, and audit persistence across multiple source systems.

Maintainable transformation and operations

Martini separates mapping, business rules, authentication, retries, and monitoring from application code. This makes provider-specific SES formats easier to evolve while preserving consistent enterprise contracts and operational controls.

Frequently asked questions

How can Amazon SES be integrated with enterprise systems?

Amazon SES can be integrated through its regional HTTPS APIs, SMTP interface, SendBulkEmail operation, raw or structured email content, and configuration-driven event destinations. SES events can be routed through Amazon SNS, Kinesis Data Firehose, or CloudWatch, while enterprise workflows can use IAM authorization, AWS Signature Version 4, or SES SMTP credentials over TLS.

Can Martini integrate with Amazon SES?

Yes. Martini can consume the Amazon SES HTTPS API in workflows, expose an API for applications that need to send email, map enterprise data to SES message structures, and process selected SES events delivered through Amazon SNS or another configured AWS destination. A native Martini Amazon SES connector is not confirmed.

Do I need a connector to integrate Amazon SES with Martini?

No. A dedicated Amazon SES connector is not required. Martini can use the SES HTTPS API, SES SMTP interface where the deployment supports an SMTP client, and SNS-delivered event notifications using the authentication and endpoints confirmed for Amazon SES.

Is there any extra Lonti cost to integrate Amazon SES with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Amazon SES. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Amazon SES, SNS, CloudWatch, Kinesis, Lambda, cloud infrastructure, or other third-party systems based on subscription, usage, and deployment model.

Which Amazon SES integration method should an enterprise use?

Use the regional HTTPS API for controlled programmatic sending, administration, and statistics operations; use SendBulkEmail for templated multi-recipient submissions; use raw email operations for MIME and attachment requirements; and use SMTP when an existing SMTP client is the most practical option. Event destinations should be added when final delivery outcomes matter.

Does Amazon SES support webhooks or event callbacks?

SES supports selected event notifications through Amazon SNS, Kinesis Data Firehose, and CloudWatch. SNS can forward notifications to an HTTP/S endpoint such as a Martini API, but SES does not provide a universal native webhook for every event. Notifications can be asynchronous, duplicated, delayed, or out of order.

How does synchronization with Amazon SES work?

Email submission is asynchronous: a successful send response means SES accepted the request, not that the recipient received the message. Martini can store SES message identifiers and business correlation data, then reconcile delivery, bounce, complaint, reject, and other selected events from the configured event destination. Idempotency and out-of-order handling should be designed explicitly.

How does Martini handle Amazon SES mapping, errors, and retries?

Martini can map enterprise payloads to SES destinations, templates, configuration sets, bulk entries, MIME content, and event models. Workflows can validate inputs, apply suppression and quota rules, handle AWS errors, and use bounded backoff for transient failures. Because a retry after an uncertain response can duplicate email, durable send records and application-level deduplication are important.