Skip to main content

ses

aws command

aws ses list-identities

destination.json

{
  "ToAddresses": [
    "test@example.com"
  ],
  "CcAddresses": [],
  "BccAddresses": []
}

message.json

{
  "Subject": {
    "Data": "test mail",
    "Charset": "UTF-8"
  },
  "Body": {
    "Text": {
      "Data": "Hi.\n\nThis is a test mail.",
      "Charset": "UTF-8"
    }
  }
}
aws ses send-email --from noreply@example.net --destination file://destination.json --message file://message.json

template.json

{
  "TemplateName": "testtemplate",
  "SubjectPart": "Greetings, {{name}}!",
  "TextPart": "Dear {{name}},\n\nYour favorite animal is {{favoriteanimal}}."
}
aws ses list-templates
aws ses create-template --template file://template.json
aws ses get-template --template testtemplate

template-parameters.json

{
  "name": "john",
  "favoriteanimal": "cat"
}
aws ses test-render-template --template-name testtemplate --template-data file://template-data.json
aws ses send-templated-email --source noreply@example.net --destination file://destination.json --template testtemplate --template-data file://template-data.json
aws ses delete-template --template-name testtemplate

python test script

#!/bin/usr/python

import boto3
import json

fromaddr = 'noreply@example.net'
destaddr = 'test@example.com'
destination = {
    'ToAddresses': [
        destaddr,
    ]
}

client = boto3.client('ses')

## send email
response = client.send_email(
    Source = fromaddr,
    Destination = destination,
    Message={
        'Subject': {
            'Data': 'test mail',
            'Charset': 'UTF-8'
        },
        'Body': {
            'Text': {
                'Data': 'Hi.\n\nThis is a test mail',
                'Charset': 'UTF-8'
            },
        }
    }
)
print(response)

templates = client.list_templates()
for template in templates['TemplatesMetadata']:
    response = client.get_template(
        TemplateName=template['Name']
    )
    print(response['Template'])

## create template
response = client.create_template(
    Template={
        "TemplateName": "testtemplate",
        "SubjectPart": "Greetings, {{name}}!",
        "TextPart": "Dear {{name}},\n\nYour favorite animal is {{favoriteanimal}}."
    }
)
templatedata = {
    "name": "john",
    "favoriteanimal": "cat"
}

## send templated email
response = client.send_templated_email(
    Source=fromaddr,
    Destination=destination,
    Template='testtemplate',
    TemplateData=json.dumps(templatedata)
)
print(response)

## delete template
response = client.delete_template(
    TemplateName='testtemplate'
)
print(response)

templates = client.list_templates()
for template in templates['TemplatesMetadata']:
    response = client.get_template(
        TemplateName=template['Name']
    )
    print(response['Template'])