You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于使用AWS SDK for Java v2通过AWS SES发送原始邮件的疑问

在AWS SDK for Java v2中发送原始邮件的解决方案

AWS SDK for Java v2没有移除发送原始邮件的功能,只是API结构与v1不同,且部分官方文档/示例存在版本混淆的问题。以下是具体的实现方式和说明:

核心实现逻辑

在v2中,发送原始邮件无需单独的SendRawEmail接口,而是通过SendEmail操作,将MIME格式的原始邮件内容封装为RawMessage对象传入请求即可。

代码示例

import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.ses.SesClient;
import software.amazon.awssdk.services.ses.model.*;
import java.nio.charset.StandardCharsets;

public class SendRawSesEmailV2 {
    public static void main(String[] args) {
        // 初始化SES客户端
        Region region = Region.US_EAST_1;
        SesClient sesClient = SesClient.builder()
                .region(region)
                .build();

        // 构造符合MIME规范的原始邮件内容
        String rawMimeEmail = "From: 发件人邮箱@example.com\r\n" +
                "To: 收件人邮箱@example.com\r\n" +
                "Subject: 测试原始邮件\r\n" +
                "Content-Type: text/plain; charset=UTF-8\r\n\r\n" +
                "这是通过AWS SES SDK v2发送的原始邮件内容。";

        // 封装原始邮件为RawMessage对象
        RawMessage rawMessage = RawMessage.builder()
                .data(rawMimeEmail.getBytes(StandardCharsets.UTF_8))
                .build();

        // 构建发送请求
        SendEmailRequest sendEmailRequest = SendEmailRequest.builder()
                .source("发件人邮箱@example.com")
                .destination(dest -> dest.toAddresses("收件人邮箱@example.com"))
                .content(content -> content.raw(rawContent -> rawContent.data(rawMessage)))
                .build();

        try {
            // 执行发送
            sesClient.sendEmail(sendEmailRequest);
            System.out.println("原始邮件发送成功");
        } catch (SesException e) {
            System.err.println("发送失败: " + e.awsErrorDetails().errorMessage());
            System.exit(1);
        } finally {
            sesClient.close();
        }
    }
}

关于文档混淆的说明

  • 部分标注为v2的官方示例存在版本错误,仍沿用了v1的SendRawEmailRequest类,这是文档更新不及时导致的。
  • AWS建议升级到v2是因为v2具备模块化设计、更好的性能、原生异步支持等优势,v1的核心功能在v2中均有对应实现,只是API形态做了优化调整,并非功能删减。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:12:47