Skip to content
Get Started for Free

Simple Email Service (SES)

Simple Email Service (SES) is an emailing service that can be integrated with other cloud-based services. It provides API to facilitate email templating, sending bulk emails and more.

The supported APIs are available on the API coverage page for SESv1 and SESv2.

This is an introductory guide to get started with SES. Basic knowledge of the AWS CLI and LocalStack lstk aws command is assumed.

Start LocalStack using your preferred method.

To be able to send emails, we need to create a verified identity. A verified identity appears as part of the ‘From’ field in the sent email.

A singular email identity can be added using the VerifyEmailIdentity operation.

Terminal window
lstk aws ses verify-email-identity --email hello@example.com
lstk aws ses list-identities
Output
{
"Identities": [
"hello@example.com"
]
}

Next, emails can be sent using the SendEmail operation.

Terminal window
lstk aws ses send-email \
--from "hello@example.com" \
--message 'Body={Text={Data="This is the email body"}},Subject={Data="This is the email subject"}' \
--destination 'ToAddresses=jeff@aws.com'
Output
{
"MessageId": "labpqxukegeaftfh-ymaouvvy-ribr-qeoy-izfp-kxaxbfcfsgbh-wpewvd"
}

LocalStack keeps track of all sent emails for retrospection. Sent messages can be retrieved in following ways:

  • API endpoint: LocalStack provides a service endpoint (/_aws/ses) which can be used to return in-memory saved messages. A GET call returns all messages. Query parameters id and email can be used to filter by message ID and message source respectively.

    Terminal window
    curl --silent localhost.localstack.cloud:4566/_aws/ses?email=hello@example.com | jq .
    Output
    {
    "messages": [
    {
    "Id": "dqxhhgoutkmylpbc-ffuqlkjs-ljld-fckp-hcph-wcsrkmxhhldk-pvadjc",
    "Region": "eu-central-1",
    "Destination": {
    "ToAddresses": [
    "jeff@aws.com"
    ]
    },
    "Source": "hello@example.com",
    "Subject": "This is the email subject",
    "Body": {
    "text_part": "This is the email body",
    "html_part": null
    },
    "Timestamp": "2023-09-11T08:37:13"
    }
    ]
    }

    A DELETE call clears all messages from the memory. The query parameter id can be used to delete only a specific message.

    Terminal window
    curl -X DELETE localhost.localstack.cloud:4566/_aws/ses?id=dqxhhgoutkmylpbc-ffuqlkjs-ljld-fckp-hcph-wcsrkmxhhldk-pvadjc
  • Filesystem: All messages are saved to the state directory (see filesystem layout). The files are saved as JSON in the ses/ subdirectory and named by the message ID.

LocalStack for AWS supports sending emails via an SMTP server. To enable this, set the connections parameters and access credentials for the server in the configuration. Refer to the Configuration guide for details.

LocalStack Web Application provides a resource browser for managing email identities and introspecing sent emails.

SES Resource Browser

The Resource Browser allows you to perform following actions:

  • Create Email Identity: Create an email identity by clicking Create Identity and specifying the email address.
  • View Sent Emails: View all sent emails from an email identity by clicking the email address. You can the view the details of a sent email by selecting them from the list.
  • Send Emails: On selecting an email identity, click Send Message and specify destination fields (To, CC and BCC addresses) and the body (Plaintext, HTML) to send an email.
  • It is currently not possible to receive emails via SES in LocalStack.
  • All operations related to Receipt Rules are mocked.

46 of 71 operations implemented

Available from Hobby; some service variants start at Base. Licensing details

Find an API

Search the full operation list, then sort the table to compare current support.

Loading operations…

Verified on Kubernetes
Loading operations…
Complete static API list All 71 operations and their current support status
OperationStatus
CloneReceiptRuleSetImplemented
CreateConfigurationSetImplemented
CreateConfigurationSetEventDestinationImplemented
CreateConfigurationSetTrackingOptionsNot implemented
CreateCustomVerificationEmailTemplateNot implemented
CreateReceiptFilterNot implemented
CreateReceiptRuleImplemented
CreateReceiptRuleSetImplemented
CreateTemplateImplemented
DeleteConfigurationSetImplemented
DeleteConfigurationSetEventDestinationImplemented
DeleteConfigurationSetTrackingOptionsNot implemented
DeleteCustomVerificationEmailTemplateNot implemented
DeleteIdentityImplemented
DeleteIdentityPolicyNot implemented
DeleteReceiptFilterNot implemented
DeleteReceiptRuleImplemented
DeleteReceiptRuleSetImplemented
DeleteTemplateImplemented
DeleteVerifiedEmailAddressNot implemented
DescribeActiveReceiptRuleSetImplemented
DescribeConfigurationSetImplemented
DescribeReceiptRuleImplemented
DescribeReceiptRuleSetImplemented
GetAccountSendingEnabledNot implemented
GetCustomVerificationEmailTemplateNot implemented
GetIdentityDkimAttributesImplemented
GetIdentityMailFromDomainAttributesImplemented
GetIdentityNotificationAttributesImplemented
GetIdentityPoliciesNot implemented
GetIdentityVerificationAttributesImplemented
GetSendQuotaImplemented
GetSendStatisticsImplemented
GetTemplateImplemented
ListConfigurationSetsImplemented
ListCustomVerificationEmailTemplatesNot implemented
ListIdentitiesImplemented
ListIdentityPoliciesNot implemented
ListReceiptFiltersNot implemented
ListReceiptRuleSetsImplemented
ListTemplatesImplemented
ListVerifiedEmailAddressesImplemented
PutConfigurationSetDeliveryOptionsNot implemented
PutIdentityPolicyNot implemented
ReorderReceiptRuleSetNot implemented
SendBounceNot implemented
SendBulkTemplatedEmailImplemented
SendCustomVerificationEmailNot implemented
SendEmailImplemented
SendRawEmailImplemented
SendTemplatedEmailImplemented
SetActiveReceiptRuleSetImplemented
SetIdentityDkimEnabledNot implemented
SetIdentityFeedbackForwardingEnabledImplemented
SetIdentityHeadersInNotificationsEnabledImplemented
SetIdentityMailFromDomainImplemented
SetIdentityNotificationTopicImplemented
SetReceiptRulePositionImplemented
TestRenderTemplateImplemented
UpdateAccountSendingEnabledNot implemented
UpdateConfigurationSetEventDestinationNot implemented
UpdateConfigurationSetReputationMetricsEnabledImplemented
UpdateConfigurationSetSendingEnabledNot implemented
UpdateConfigurationSetTrackingOptionsNot implemented
UpdateCustomVerificationEmailTemplateNot implemented
UpdateReceiptRuleImplemented
UpdateTemplateImplemented
VerifyDomainDkimImplemented
VerifyDomainIdentityImplemented
VerifyEmailAddressImplemented
VerifyEmailIdentityImplemented

14 of 116 operations implemented

Available from Hobby; some service variants start at Base. Licensing details

Find an API

Search the full operation list, then sort the table to compare current support.

Loading operations…

Verified on Kubernetes
Loading operations…
Complete static API list All 116 operations and their current support status
OperationStatus
AssociateEmailIdentityCertificateNot implemented
BatchGetMetricDataNot implemented
CancelExportJobNot implemented
CreateConfigurationSetNot implemented
CreateConfigurationSetEventDestinationNot implemented
CreateContactNot implemented
CreateContactListNot implemented
CreateCustomVerificationEmailTemplateNot implemented
CreateDedicatedIpPoolNot implemented
CreateDeliverabilityTestReportNot implemented
CreateEmailIdentityImplemented
CreateEmailIdentityPolicyNot implemented
CreateEmailTemplateImplemented
CreateExportJobNot implemented
CreateImportJobNot implemented
CreateMultiRegionEndpointNot implemented
CreateTenantNot implemented
CreateTenantResourceAssociationNot implemented
DeleteConfigurationSetNot implemented
DeleteConfigurationSetEventDestinationNot implemented
DeleteContactNot implemented
DeleteContactListNot implemented
DeleteCustomVerificationEmailTemplateNot implemented
DeleteDedicatedIpPoolNot implemented
DeleteEmailIdentityImplemented
DeleteEmailIdentityPolicyNot implemented
DeleteEmailTemplateImplemented
DeleteMultiRegionEndpointNot implemented
DeleteSuppressedDestinationNot implemented
DeleteTenantNot implemented
DeleteTenantResourceAssociationNot implemented
DisassociateEmailIdentityCertificateNot implemented
GetAccountNot implemented
GetBlacklistReportsNot implemented
GetConfigurationSetNot implemented
GetConfigurationSetEventDestinationsNot implemented
GetContactNot implemented
GetContactListNot implemented
GetCustomVerificationEmailTemplateNot implemented
GetDedicatedIpNot implemented
GetDedicatedIpPoolNot implemented
GetDedicatedIpsNot implemented
GetDeliverabilityDashboardOptionsNot implemented
GetDeliverabilityTestReportNot implemented
GetDomainDeliverabilityCampaignNot implemented
GetDomainStatisticsReportNot implemented
GetEmailAddressInsightsNot implemented
GetEmailIdentityImplemented
GetEmailIdentityPoliciesNot implemented
GetEmailTemplateNot implemented
GetExportJobNot implemented
GetImportJobNot implemented
GetMessageInsightsNot implemented
GetMultiRegionEndpointNot implemented
GetReputationEntityNot implemented
GetSuppressedDestinationNot implemented
GetTenantNot implemented
ListConfigurationSetsNot implemented
ListContactListsNot implemented
ListContactsNot implemented
ListCustomVerificationEmailTemplatesNot implemented
ListDedicatedIpPoolsNot implemented
ListDeliverabilityTestReportsNot implemented
ListDomainDeliverabilityCampaignsNot implemented
ListEmailIdentitiesImplemented
ListEmailIdentityCertificatesNot implemented
ListEmailTemplatesImplemented
ListExportJobsNot implemented
ListImportJobsNot implemented
ListMultiRegionEndpointsNot implemented
ListRecommendationsNot implemented
ListReputationEntitiesNot implemented
ListResourceTenantsNot implemented
ListSuppressedDestinationsNot implemented
ListTagsForResourceNot implemented
ListTenantResourcesNot implemented
ListTenantsNot implemented
PutAccountDedicatedIpWarmupAttributesNot implemented
PutAccountDetailsNot implemented
PutAccountPricingAttributesNot implemented
PutAccountSendingAttributesNot implemented
PutAccountSuppressionAttributesNot implemented
PutAccountVdmAttributesNot implemented
PutConfigurationSetArchivingOptionsNot implemented
PutConfigurationSetDeliveryOptionsNot implemented
PutConfigurationSetReputationOptionsNot implemented
PutConfigurationSetSendingOptionsNot implemented
PutConfigurationSetSuppressionOptionsNot implemented
PutConfigurationSetTrackingOptionsNot implemented
PutConfigurationSetVdmOptionsNot implemented
PutDedicatedIpInPoolNot implemented
PutDedicatedIpPoolScalingAttributesNot implemented
PutDedicatedIpWarmupAttributesNot implemented
PutDeliverabilityDashboardOptionNot implemented
PutEmailIdentityConfigurationSetAttributesImplemented
PutEmailIdentityDkimAttributesImplemented
PutEmailIdentityDkimSigningAttributesImplemented
PutEmailIdentityFeedbackAttributesImplemented
PutEmailIdentityMailFromAttributesImplemented
PutSuppressedDestinationNot implemented
PutTenantSuppressionAttributesNot implemented
SendBulkEmailImplemented
SendCustomVerificationEmailNot implemented
SendEmailImplemented
TagResourceNot implemented
TestRenderEmailTemplateNot implemented
UntagResourceNot implemented
UpdateConfigurationSetNot implemented
UpdateConfigurationSetEventDestinationNot implemented
UpdateContactNot implemented
UpdateContactListNot implemented
UpdateCustomVerificationEmailTemplateNot implemented
UpdateEmailIdentityPolicyNot implemented
UpdateEmailTemplateNot implemented
UpdateReputationEntityCustomerManagedStatusNot implemented
UpdateReputationEntityPolicyNot implemented
Was this page helpful?