跳至内容

如何使用 SES V2 API 发送带有附件的电子邮件?

2 分钟阅读
内容级别:中级
1

2025 年 4 月 4 日,Amazon Simple Email Service (SES) 推出了通过 SES v2 API 的 简单发送类型(Simple) 向电子邮件添加附件的支持。 客户可以将 PDF 文档等附件添加到电子邮件中,或包含用于在电子邮件内容中内联呈现的图像,而无需下载图像。

以下是使用简单发送类型(Simple)发送附件的详细步骤。

假设你有一个名为 document.pdf 的 PDF 文件,并希望生成一个名为 request-send-email.json 的 SES 邮件发送请求文件。

第 1 步:准备模板 JSON 文件

创建一个 JSON 模板文件(request-template.json),内容如下:

{
  "FromEmailAddress": "sender@example.com",
  "Destination": {
    "ToAddresses": [
      "recipient@example.com"
    ]
  },
  "Content": {
    "Simple": {
      "Subject": {
        "Data": "Email with attachment"
      },
      "Body": {
        "Text": {
          "Data": "Please see attached document."
        }
      },
      "Attachments": [
        {
          "RawContent": "",
          "ContentDisposition": "ATTACHMENT",
          "FileName": "document.pdf",
          "ContentDescription": "PDF Document Attachment",
          "ContentTransferEncoding": "BASE64"
        }
      ]
    }
  }
}

第 2 步:生成最终 JSON 文件

方法 1:手动将附件转换为 Base64 编码

  1. 使用以下命令将 PDF 文件转换为 Base64 编码:

    base64 -w 0 document.pdf > pdf-encoded.txt
  2. 查看编码内容:

    cat pdf-encoded.txt
  3. 手动编辑 request-send-email.json,将 Base64 编码内容复制到 "RawContent": "<base64-encoded-content>" 字段。

    vim request-send-email.json

方法 2:使用脚本自动嵌入 Base64 编码

由于 PDF 或图片的 Base64 编码较长,手动复制可能出错,建议使用脚本自动化处理:

  1. 安装 jq 工具(若未安装):

    sudo yum install -y jq
  2. 将 PDF 文件转换为 Base64 编码,并嵌入 JSON 文件:

    CONTENT=$(base64 -w 0 document.pdf)
    jq --arg content "$CONTENT" '.Content.Simple.Attachments[0].RawContent = $content' request-template.json > request-send-email.json

第 3 步:使用 AWS CLI 发送邮件

使用 AWS CLI 命令发送包含附件的邮件:

aws sesv2 send-email --cli-input-json file://request-send-email.json

处理 JPG 文件附件

对于 JPG 文件,流程与 PDF 文件相同,仅需修改文件名和描述。例如,在 JSON 文件中更新以下字段:

"FileName": "image.jpg",
"ContentDescription": "JPG Image Attachment"

Base64 编码处理命令保持不变:

CONTENT=$(base64 -w 0 image.jpg)
jq --arg content "$CONTENT" '.Content.Simple.Attachments[0].RawContent = $content' request-template.json > request-send-email.json

结论

借助 SES v2 API 的“简单”发送类型,用户现在可以轻松发送带附件的电子邮件。这项增强功能显著提升了 SES 的灵活性,使其成为需要文档或图像传送场景的理想选择。无论您选择手动操作还是脚本自动化,发送带附件的电子邮件现在都变得高效而简单。

参考文献

  1. Amazon SES 新功能公告
  2. AWS SES 附件功能文档

AWS
专家
已​发布 8 个月前287 查看次数