在营销、通知等场景中,我们经常需要发送格式丰富的 HTML 邮件。本文介绍如何用 Python + boto3,从 S3 读取 HTML 模板并通过 SES 发送邮件。
架构
S3 (HTML模板) → Python脚本 → SES → 收件人
前置条件
- AWS 账号已开通 SES 服务,且发件地址已验证
- S3 Bucket 中已上传 HTML 模板文件
- 本地已配置 AWS 凭证(aws configure 或 IAM Role)
- 安装依赖:pip install boto3
核心代码
1 | #!/usr/bin/env python3 |
关键点说明
- get_html_from_s3:通过 s3.get_object 拉取 HTML 文件内容,注意 decode(‘utf-8’) 确保中文正常显示
- send_html_email:调用 ses.send_email,将 HTML 作为邮件 Body 发送,指定 Charset: UTF-8 避免乱码
- Source 地址必须是 SES 中已验证的邮箱或域名

