📧 Amazon SES 使用指南

电子邮件模板管理与发送的完整指南

📋 功能概览

Amazon SES 模板管理系统提供了完整的邮件模板生命周期管理功能:

📝

创建模板

创建HTML和纯文本邮件模板

👁️

查看模板

查看模板详细信息和内容

✏️

编辑模板

修改现有模板的内容

🗑️

删除模板

安全删除不需要的模板

📧

批量发送

使用模板批量发送个性化邮件

📊

发送跟踪

查看邮件发送状态和结果

1 准备 AWS 访问凭证

在开始使用之前,您需要准备有效的 AWS 访问凭证。

重要: 确保您的 AWS 账户已启用 Amazon SES 服务,并且具有相应的权限

所需权限:

  • ses:ListEmailTemplates - 查看模板列表
  • ses:GetEmailTemplate - 获取模板详情
  • ses:CreateEmailTemplate - 创建新模板
  • ses:UpdateEmailTemplate - 更新模板
  • ses:DeleteEmailTemplate - 删除模板
  • ses:SendBulkTemplatedEmail - 发送模板邮件
提示: 建议使用 IAM 用户而不是根账户,并遵循最小权限原则
2 查看邮件模板列表

首先输入您的 AWS 访问凭证,然后查询现有的邮件模板。

// Amazon SES ListTemplates API 调用 aws sesv2 list-email-templates // 限制返回数量 aws sesv2 list-email-templates --max-items 10 // 使用分页 aws sesv2 list-email-templates --max-items 10 --starting-token "your-token"

API 响应示例:

{ "TemplatesMetadata": [ { "Name": "SpecialOffers", "CreatedTimestamp": "2020-08-05T16:04:12.640Z" }, { "Name": "NewsAndUpdates", "CreatedTimestamp": "2019-10-03T20:03:34.574Z" } ] }
提示: 可以勾选"记住密钥"选项,系统会安全地保存您的凭证30天
3 创建邮件模板

点击"➕ 添加模板"按钮创建新的邮件模板。模板支持HTML和纯文本两种格式。

Amazon SES 创建模板 API:
{ "TemplateName": "MyTemplate", "TemplateContent": { "Subject": "Greetings, {{name}}!", "Text": "Dear {{name}},\r\nYour favorite animal is {{favoriteanimal}}.", "Html": "Hello {{name}},Your favorite animal is {{favoriteanimal}}." } }
变量替换: 使用 {{变量名}} 语法定义可替换的变量,如 {{name}}{{orderId}}

创建步骤:

  1. 输入模板名称(仅支持字母、数字、下划线和连字符)
  2. 设置邮件主题
  3. 编写HTML内容(支持变量替换)
  4. 编写纯文本内容(可选,建议提供)
  5. 点击"🚀 创建模板"完成创建
4 查看模板详情

点击模板列表中的"👁️ 查看"按钮,可以获取特定模板的详细信息。

// Amazon SES GetTemplate API 调用 aws sesv2 get-email-template --template-name TestMessage // 或使用 AWS CLI JSON 格式 aws sesv2 get-email-template --cli-input-json '{ "TemplateName": "TestMessage" }'

API 响应示例:

{ "Template": { "TemplateName": "TestMessage", "SubjectPart": "Amazon SES Test Message", "TextPart": "Hello! This is the text part of the message.", "HtmlPart": "Hello!This is the HTML part of the message." } }
提示: 模板详情包含完整的邮件内容,可以用于预览和验证模板设计
5 编辑和删除模板

在模板列表中,每个模板都提供了编辑和删除操作。

操作说明:

  • ✏️ 编辑: 跳转到编辑页面,可以修改模板的主题和内容
  • 🗑️ 删除: 永久删除模板(操作不可撤销)

Amazon SES 更新模板 API:

{ "Template": { "TemplateName": "TestMessage", "SubjectPart": "Amazon SES Test Message", "TextPart": "Hello! This is the text part of the message.", "HtmlPart": "This is the HTML part of the message." } }
注意: 删除模板是不可逆操作,请谨慎操作。建议在删除前备份重要模板
6 批量发送模板邮件

点击模板名称进入发送页面,可以使用模板批量发送个性化邮件。

发送配置:

  1. 发件人邮箱: 必须是在 Amazon SES 中验证过的邮箱地址
  2. 默认模板数据: 为所有收件人设置默认变量值
  3. 收件人列表: 添加收件人邮箱和个性化数据
Amazon SES 批量发送模板邮件 API:
// 使用 AWS CLI 批量发送模板邮件 aws sesv2 send-bulk-email --cli-input-json '{ "FromEmailAddress": "Sender Name ", "DefaultContent": { "Template": { "TemplateName": "Preferences", "TemplateData": "{\"meta\":{\"userId\":\"\"},\"contact\":{\"firstName\":\"Friend\",\"lastName\":\"\"},\"subscription\":[]}" } }, "Destinations": [ { "Destination": { "ToAddresses": ["anaya.iyengar@example.com"] }, "ReplacementEmailContent": { "Template": { "TemplateData": "{\"meta\":{\"userId\":\"51806220607\"},\"contact\":{\"firstName\":\"Anaya\",\"lastName\":\"Iyengar\"},\"subscription\":[{\"interest\":\"Sports\"},{\"interest\":\"Travel\"},{\"interest\":\"Cooking\"}]}" } } }, { "Destination": { "ToAddresses": ["shirley.rodriguez@example.com"] }, "ReplacementEmailContent": { "Template": { "TemplateData": "{\"meta\":{\"userId\":\"1981624758263\"},\"contact\":{\"firstName\":\"Shirley\",\"lastName\":\"Rodriguez\"},\"subscription\":[{\"interest\":\"Technology\"},{\"interest\":\"Politics\"}]}" } } } ] }'
发件人验证: 确保发件人邮箱已在 Amazon SES 控制台中完成验证,否则邮件无法发送
7 查看发送结果

邮件发送完成后,系统会显示每个收件人的发送状态。

发送结果示例:
{ "success": true, "message": "批量邮件发送完成", "results": [ { "email": "user1@example.com", "status": "SUCCESS", "messageId": "0000014a-f4d4-4f55-9c8a-example12345", "errorMessage": null }, { "email": "invalid@example.com", "status": "FAILED", "messageId": null, "errorMessage": "邮箱地址无效" } ] }

状态说明:

  • SUCCESS: 邮件发送成功,已提交到 Amazon SES
  • FAILED: 邮件发送失败,请检查错误信息
提示: 点击"📄 查看响应报文"按钮可以查看完整的 API 响应数据
💡 最佳实践建议

🔒 安全性

  • 定期轮换 AWS 访问密钥
  • 使用 IAM 角色而不是长期访问密钥(生产环境)
  • 启用 MFA(多因素认证)保护 AWS 账户

📝 模板设计

  • 同时提供 HTML 和纯文本版本,确保兼容性
  • 使用语义化的变量名,如 {{customerName}} 而不是 {{x}}
  • 在模板中包含取消订阅链接(如适用)
  • 测试模板在不同邮件客户端中的显示效果

📊 发送管理

  • 监控发送配额,避免超出限制
  • 处理退信和投诉,维护良好的发送声誉
  • 使用适当的发送频率,避免被标记为垃圾邮件
  • 保持收件人列表的清洁度,及时清理无效邮箱
合规提醒: 确保遵守相关的邮件营销法规,如 GDPR、CAN-SPAM Act 等
🔧 常见问题排除

❌ 模板创建失败

  • 检查模板名称是否符合命名规范
  • 确保 HTML 和文本内容不为空
  • 验证 AWS 凭证是否有效

📧 邮件发送失败

  • 确认发件人邮箱已在 SES 中验证
  • 检查收件人邮箱格式是否正确
  • 验证模板变量数据格式是否为有效 JSON
  • 确认未超出发送配额限制

🔐 权限错误

  • 检查 IAM 用户是否具有必要的 SES 权限
  • 确认 AWS 区域设置正确
  • 验证访问密钥是否已过期