# AWS SES

Send emails and manage templates with AWS Simple Email Service

## Usage Instructions

Integrate AWS SES v2 into the workflow. Send simple, templated, and bulk emails. Manage email templates and retrieve account sending quota and verified identity information.

## Tools

### `ses_send_email`

Send an email via AWS SES using simple or HTML content

#### Input

| Parameter              | Type   | Required | Description                                       |
| ---------------------- | ------ | -------- | ------------------------------------------------- |
| `region`               | string | Yes      | AWS region (e.g., us-east-1)                      |
| `accessKeyId`          | string | Yes      | AWS access key ID                                 |
| `secretAccessKey`      | string | Yes      | AWS secret access key                             |
| `fromAddress`          | string | Yes      | Verified sender email address                     |
| `toAddresses`          | string | Yes      | Comma-separated list of recipient email addresses |
| `subject`              | string | Yes      | Email subject line                                |
| `bodyText`             | string | No       | Plain text email body                             |
| `bodyHtml`             | string | No       | HTML email body                                   |
| `ccAddresses`          | string | No       | Comma-separated list of CC email addresses        |
| `bccAddresses`         | string | No       | Comma-separated list of BCC email addresses       |
| `replyToAddresses`     | string | No       | Comma-separated list of reply-to email addresses  |
| `configurationSetName` | string | No       | SES configuration set name for tracking           |

#### Output

| Parameter   | Type   | Description                       |
| ----------- | ------ | --------------------------------- |
| `messageId` | string | SES message ID for the sent email |

### `ses_send_templated_email`

Send an email using an SES email template with dynamic template data

#### Input

| Parameter              | Type   | Required | Description                                                       |
| ---------------------- | ------ | -------- | ----------------------------------------------------------------- |
| `region`               | string | Yes      | AWS region (e.g., us-east-1)                                      |
| `accessKeyId`          | string | Yes      | AWS access key ID                                                 |
| `secretAccessKey`      | string | Yes      | AWS secret access key                                             |
| `fromAddress`          | string | Yes      | Verified sender email address                                     |
| `toAddresses`          | string | Yes      | Comma-separated list of recipient email addresses                 |
| `templateName`         | string | Yes      | Name of the SES email template to use                             |
| `templateData`         | string | Yes      | JSON string of key-value pairs for template variable substitution |
| `ccAddresses`          | string | No       | Comma-separated list of CC email addresses                        |
| `bccAddresses`         | string | No       | Comma-separated list of BCC email addresses                       |
| `configurationSetName` | string | No       | SES configuration set name for tracking                           |

#### Output

| Parameter   | Type   | Description                       |
| ----------- | ------ | --------------------------------- |
| `messageId` | string | SES message ID for the sent email |

### `ses_send_bulk_email`

Send emails to multiple recipients using an SES template with per-recipient data

#### Input

| Parameter              | Type   | Required | Description                                                                                                                                            |
| ---------------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `region`               | string | Yes      | AWS region (e.g., us-east-1)                                                                                                                           |
| `accessKeyId`          | string | Yes      | AWS access key ID                                                                                                                                      |
| `secretAccessKey`      | string | Yes      | AWS secret access key                                                                                                                                  |
| `fromAddress`          | string | Yes      | Verified sender email address                                                                                                                          |
| `templateName`         | string | Yes      | Name of the SES email template to use                                                                                                                  |
| `destinations`         | string | Yes      | JSON array of destination objects with toAddresses (string\[]) and optional templateData (JSON string); falls back to defaultTemplateData when omitted |
| `defaultTemplateData`  | string | No       | Default JSON template data used when a destination does not specify its own                                                                            |
| `configurationSetName` | string | No       | SES configuration set name for tracking                                                                                                                |

#### Output

| Parameter      | Type   | Description                                            |
| -------------- | ------ | ------------------------------------------------------ |
| `results`      | array  | Per-destination send results with status and messageId |
| `successCount` | number | Number of successfully sent emails                     |
| `failureCount` | number | Number of failed email sends                           |

### `ses_list_identities`

List all verified email identities (email addresses and domains) in your SES account

#### Input

| Parameter         | Type   | Required | Description                                     |
| ----------------- | ------ | -------- | ----------------------------------------------- |
| `region`          | string | Yes      | AWS region (e.g., us-east-1)                    |
| `accessKeyId`     | string | Yes      | AWS access key ID                               |
| `secretAccessKey` | string | Yes      | AWS secret access key                           |
| `pageSize`        | number | No       | Maximum number of identities to return (1-1000) |
| `nextToken`       | string | No       | Pagination token from a previous list response  |

#### Output

| Parameter    | Type   | Description                                                                       |
| ------------ | ------ | --------------------------------------------------------------------------------- |
| `identities` | array  | List of email identities with name, type, sending status, and verification status |
| `nextToken`  | string | Pagination token for the next page of results                                     |
| `count`      | number | Number of identities returned                                                     |

### `ses_get_account`

Get SES account sending quota and status information

#### Input

| Parameter         | Type   | Required | Description                  |
| ----------------- | ------ | -------- | ---------------------------- |
| `region`          | string | Yes      | AWS region (e.g., us-east-1) |
| `accessKeyId`     | string | Yes      | AWS access key ID            |
| `secretAccessKey` | string | Yes      | AWS secret access key        |

#### Output

| Parameter         | Type    | Description                                      |
| ----------------- | ------- | ------------------------------------------------ |
| `sendingEnabled`  | boolean | Whether email sending is enabled for the account |
| `max24HourSend`   | number  | Maximum emails allowed per 24-hour period        |
| `maxSendRate`     | number  | Maximum emails allowed per second                |
| `sentLast24Hours` | number  | Number of emails sent in the last 24 hours       |

### `ses_create_template`

Create a new SES email template for use with templated email sending

#### Input

| Parameter         | Type   | Required | Description                                                  |
| ----------------- | ------ | -------- | ------------------------------------------------------------ |
| `region`          | string | Yes      | AWS region (e.g., us-east-1)                                 |
| `accessKeyId`     | string | Yes      | AWS access key ID                                            |
| `secretAccessKey` | string | Yes      | AWS secret access key                                        |
| `templateName`    | string | Yes      | Unique name for the email template                           |
| `subjectPart`     | string | Yes      | Subject line template (supports \{\{variable}} substitution) |
| `textPart`        | string | No       | Plain text version of the template body                      |
| `htmlPart`        | string | No       | HTML version of the template body                            |

#### Output

| Parameter | Type   | Description                                   |
| --------- | ------ | --------------------------------------------- |
| `message` | string | Confirmation message for the created template |

### `ses_get_template`

Retrieve the content and details of an SES email template

#### Input

| Parameter         | Type   | Required | Description                      |
| ----------------- | ------ | -------- | -------------------------------- |
| `region`          | string | Yes      | AWS region (e.g., us-east-1)     |
| `accessKeyId`     | string | Yes      | AWS access key ID                |
| `secretAccessKey` | string | Yes      | AWS secret access key            |
| `templateName`    | string | Yes      | Name of the template to retrieve |

#### Output

| Parameter      | Type   | Description                     |
| -------------- | ------ | ------------------------------- |
| `templateName` | string | Name of the template            |
| `subjectPart`  | string | Subject line of the template    |
| `textPart`     | string | Plain text body of the template |
| `htmlPart`     | string | HTML body of the template       |

### `ses_list_templates`

List all SES email templates in your account

#### Input

| Parameter         | Type   | Required | Description                                    |
| ----------------- | ------ | -------- | ---------------------------------------------- |
| `region`          | string | Yes      | AWS region (e.g., us-east-1)                   |
| `accessKeyId`     | string | Yes      | AWS access key ID                              |
| `secretAccessKey` | string | Yes      | AWS secret access key                          |
| `pageSize`        | number | No       | Maximum number of templates to return          |
| `nextToken`       | string | No       | Pagination token from a previous list response |

#### Output

| Parameter   | Type   | Description                                              |
| ----------- | ------ | -------------------------------------------------------- |
| `templates` | array  | List of email templates with name and creation timestamp |
| `nextToken` | string | Pagination token for the next page of results            |
| `count`     | number | Number of templates returned                             |

### `ses_delete_template`

Delete an existing SES email template

#### Input

| Parameter         | Type   | Required | Description                    |
| ----------------- | ------ | -------- | ------------------------------ |
| `region`          | string | Yes      | AWS region (e.g., us-east-1)   |
| `accessKeyId`     | string | Yes      | AWS access key ID              |
| `secretAccessKey` | string | Yes      | AWS secret access key          |
| `templateName`    | string | Yes      | Name of the template to delete |

#### Output

| Parameter | Type   | Description                                   |
| --------- | ------ | --------------------------------------------- |
| `message` | string | Confirmation message for the deleted template |
