2023-03-31 05:36:53 -07:00
# Amazon SES code examples for the SDK for Python
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
## Overview
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
Shows how to use the AWS SDK for Python (Boto3) to work with Amazon Simple Email Service (Amazon SES).
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
<!--custom.overview.start-->
<!--custom.overview.end-->
2020-10-16 17:20:33 -07:00
2024-01-05 10:05:03 -05:00
_ Amazon SES is a reliable, scalable, and cost-effective email service. _
2023-03-31 05:36:53 -07:00
## ⚠ Important
2024-01-05 10:05:03 -05:00
* Running this code might result in charges to your AWS account. For more details, see [AWS Pricing ](https://aws.amazon.com/pricing/ ) and [Free Tier ](https://aws.amazon.com/free/ ).
2023-03-31 05:36:53 -07:00
* Running the tests might result in charges to your AWS account.
* We recommend that you grant your code least privilege. At most, grant only the minimum permissions required to perform the task. For more information, see [Grant least privilege ](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege ).
* This code is not tested in every AWS Region. For more information, see [AWS Regional Services ](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services ).
<!--custom.important.start-->
<!--custom.important.end-->
2020-10-16 17:20:33 -07:00
2021-11-05 16:01:05 -07:00
## Code examples
2023-04-13 11:38:14 -07:00
### Prerequisites
For prerequisites, see the [README ](../../README.md#Prerequisites ) in the `python` folder.
Install the packages required by these examples by running the following in a virtual environment:
```
python -m pip install -r requirements.txt
```
<!--custom.prerequisites.start-->
<!--custom.prerequisites.end-->
2023-03-31 05:36:53 -07:00
### Single actions
Code excerpts that show you how to call individual service functions.
2024-04-30 12:22:08 -07:00
- [CreateReceiptFilter ](ses_receipt_handler.py#L36 )
- [CreateReceiptRule ](ses_receipt_handler.py#L162 )
- [CreateReceiptRuleSet ](ses_receipt_handler.py#L102 )
- [CreateTemplate ](ses_templates.py#L72 )
- [DeleteIdentity ](ses_identities.py#L116 )
- [DeleteReceiptFilter ](ses_receipt_handler.py#L86 )
- [DeleteReceiptRule ](ses_receipt_handler.py#L229 )
- [DeleteReceiptRuleSet ](ses_receipt_handler.py#L250 )
- [DeleteTemplate ](ses_templates.py#L99 )
- [DescribeReceiptRuleSet ](ses_receipt_handler.py#L208 )
- [GetIdentityVerificationAttributes ](ses_identities.py#L91 )
- [GetTemplate ](ses_templates.py#L117 )
- [ListIdentities ](ses_identities.py#L132 )
- [ListReceiptFilters ](ses_receipt_handler.py#L67 )
- [ListTemplates ](ses_templates.py#L142 )
- [SendEmail ](ses_email.py#L65 )
- [SendTemplatedEmail ](ses_email.py#L108 )
- [UpdateTemplate ](ses_templates.py#L161 )
- [VerifyDomainIdentity ](ses_identities.py#L30 )
- [VerifyEmailIdentity ](ses_identities.py#L55 )
2023-03-31 05:36:53 -07:00
### Scenarios
Code examples that show you how to accomplish a specific task by calling multiple
functions within the same service.
2024-01-05 10:05:03 -05:00
- [Copy email and domain identities across Regions ](ses_replicate_identities.py )
2024-08-27 14:32:38 -04:00
- [Create a web application to track DynamoDB data ](../../cross_service/dynamodb_item_tracker )
- [Create an Aurora Serverless work item tracker ](../../cross_service/aurora_item_tracker )
- [Detect objects in images ](../../cross_service/photo_analyzer )
2025-02-24 16:56:43 -05:00
- [Detect people and objects in a video ](../../example_code/rekognition )
2024-01-05 10:05:03 -05:00
- [Generate credentials to connect to an SMTP endpoint ](ses_generate_smtp_credentials.py )
- [Verify an email identity and send messages ](ses_email.py )
2023-03-31 05:36:53 -07:00
2024-01-05 10:05:03 -05:00
<!--custom.examples.start-->
<!--custom.examples.end-->
2023-03-31 05:36:53 -07:00
## Run the examples
2021-11-05 16:01:05 -07:00
2023-03-31 05:36:53 -07:00
### Instructions
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
<!--custom.instructions.start-->
<!--custom.instructions.end-->
2020-10-16 17:20:33 -07:00
2023-04-13 11:38:14 -07:00
2023-03-31 05:36:53 -07:00
#### Copy email and domain identities across Regions
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
This example shows you how to copy Amazon SES email and domain identities from one AWS Region to another. When domain identities are managed by Route 53, verification records are copied to the domain for the destination Region.
2020-10-16 17:20:33 -07:00
2023-04-13 11:38:14 -07:00
<!--custom.scenario_prereqs.ses_Scenario_ReplicateIdentities.start-->
<!--custom.scenario_prereqs.ses_Scenario_ReplicateIdentities.end-->
2023-03-31 05:36:53 -07:00
Start the example by running the following at a command prompt:
2020-10-16 17:20:33 -07:00
```
2023-03-31 05:36:53 -07:00
python ses_replicate_identities.py
```
2020-10-16 17:20:33 -07:00
2023-10-13 14:57:41 -05:00
2023-03-31 05:36:53 -07:00
<!--custom.scenarios.ses_Scenario_ReplicateIdentities.start-->
<!--custom.scenarios.ses_Scenario_ReplicateIdentities.end-->
2020-10-16 17:20:33 -07:00
2024-08-21 13:27:36 -07:00
#### Create a web application to track DynamoDB data
This example shows you how to create a web application that tracks work items in an Amazon DynamoDB table and uses Amazon Simple Email Service (Amazon SES) (Amazon SES) to send reports.
<!--custom.scenario_prereqs.cross_DynamoDBDataTracker.start-->
<!--custom.scenario_prereqs.cross_DynamoDBDataTracker.end-->
<!--custom.scenarios.cross_DynamoDBDataTracker.start-->
<!--custom.scenarios.cross_DynamoDBDataTracker.end-->
#### Create an Aurora Serverless work item tracker
This example shows you how to create a web application that tracks work items in an Amazon Aurora Serverless database and uses Amazon Simple Email Service (Amazon SES) (Amazon SES) to send reports.
<!--custom.scenario_prereqs.cross_RDSDataTracker.start-->
<!--custom.scenario_prereqs.cross_RDSDataTracker.end-->
<!--custom.scenarios.cross_RDSDataTracker.start-->
<!--custom.scenarios.cross_RDSDataTracker.end-->
#### Detect objects in images
This example shows you how to build an app that uses Amazon Rekognition to detect objects by category in images.
<!--custom.scenario_prereqs.cross_RekognitionPhotoAnalyzer.start-->
<!--custom.scenario_prereqs.cross_RekognitionPhotoAnalyzer.end-->
<!--custom.scenarios.cross_RekognitionPhotoAnalyzer.start-->
<!--custom.scenarios.cross_RekognitionPhotoAnalyzer.end-->
2025-02-24 16:56:43 -05:00
#### Detect people and objects in a video
This example shows you how to detect people and objects in a video with Amazon Rekognition.
<!--custom.scenario_prereqs.cross_RekognitionVideoDetection.start-->
<!--custom.scenario_prereqs.cross_RekognitionVideoDetection.end-->
<!--custom.scenarios.cross_RekognitionVideoDetection.start-->
<!--custom.scenarios.cross_RekognitionVideoDetection.end-->
2023-03-31 05:36:53 -07:00
#### Generate credentials to connect to an SMTP endpoint
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
This example shows you how to generate credentials to connect to an Amazon SES SMTP endpoint.
2020-10-16 17:20:33 -07:00
2023-04-13 11:38:14 -07:00
<!--custom.scenario_prereqs.ses_Scenario_GenerateSmtpCredentials.start-->
<!--custom.scenario_prereqs.ses_Scenario_GenerateSmtpCredentials.end-->
2023-03-31 05:36:53 -07:00
Start the example by running the following at a command prompt:
2020-10-16 17:20:33 -07:00
```
2023-03-31 05:36:53 -07:00
python ses_generate_smtp_credentials.py
```
2020-10-16 17:20:33 -07:00
2023-10-13 14:57:41 -05:00
2023-03-31 05:36:53 -07:00
<!--custom.scenarios.ses_Scenario_GenerateSmtpCredentials.start-->
<!--custom.scenarios.ses_Scenario_GenerateSmtpCredentials.end-->
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
#### Verify an email identity and send messages
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
This example shows you how to do the following:
2020-10-16 17:20:33 -07:00
2024-01-05 10:05:03 -05:00
- Add and verify an email address with Amazon SES.
- Send a standard email message.
- Create a template and send a templated email message.
- Send a message by using an Amazon SES SMTP server.
2020-10-16 17:20:33 -07:00
2023-04-13 11:38:14 -07:00
<!--custom.scenario_prereqs.ses_Scenario_SendEmail.start-->
<!--custom.scenario_prereqs.ses_Scenario_SendEmail.end-->
2023-03-31 05:36:53 -07:00
Start the example by running the following at a command prompt:
2020-10-16 17:20:33 -07:00
```
2023-03-31 05:36:53 -07:00
python ses_email.py
```
2023-10-13 14:57:41 -05:00
2023-03-31 05:36:53 -07:00
<!--custom.scenarios.ses_Scenario_SendEmail.start-->
<!--custom.scenarios.ses_Scenario_SendEmail.end-->
### Tests
⚠ Running tests might result in charges to your AWS account.
2020-10-16 17:20:33 -07:00
2023-03-31 05:36:53 -07:00
To find instructions for running these tests, see the [README ](../../README.md#Tests )
in the `python` folder.
<!--custom.tests.start-->
<!--custom.tests.end-->
## Additional resources
2024-01-05 10:05:03 -05:00
- [Amazon SES Developer Guide ](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html )
- [Amazon SES API Reference ](https://docs.aws.amazon.com/ses/latest/APIReference/Welcome.html )
- [SDK for Python Amazon SES reference ](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ses.html )
2023-03-31 05:36:53 -07:00
<!--custom.resources.start-->
<!--custom.resources.end-->
2020-10-16 17:20:33 -07:00
---
2023-03-31 05:36:53 -07:00
2020-10-16 17:20:33 -07:00
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2025-02-24 16:56:43 -05:00
SPDX-License-Identifier: Apache-2.0