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

如何使用AWS SDK发送包含发件人名称的邮件?

如何通过AWS SDK发送包含发件人名称的邮件?

其实解决这个问题非常简单——AWS SES的SendEmailRequest支持直接传入**「发件人名称 <邮箱地址>」**格式的字符串作为发件人参数,收件方的邮件客户端会自动解析这个格式,显示对应的发件人名称而非纯邮箱地址。

具体修改方式:

你只需要把原本传入from参数的纯邮箱地址,替换成「名称 + 邮箱」组合的格式即可。

方式1:直接在调用时传入组合后的字符串

如果你的发件人名称固定,可以直接在调用方法时传入组合好的字符串:

// 调用示例:格式为「显示名称 <邮箱地址>」
sendMail("我的网站服务 <noreply@domain.com>", "user@example.com", "账户激活通知", "<h3>请点击链接完成激活</h3>");

方式2:修改方法参数,拆分名称和邮箱(更灵活)

如果需要动态切换发件人名称,可以新增参数拆分名称和邮箱,在方法内部组合成标准格式:

public void sendMail(String senderName, String senderEmail, String to, String subject, String htmlBody) {
    // 组合成符合邮件协议的发件人格式
    String from = String.format("%s <%s>", senderName, senderEmail);
    LOGGER.info(String.format("Sending Mail from: %s, to: %s, with subject: %s", from, to, subject));
    
    try {
        AWSCredentials credentials = new BasicAWSCredentials(awsAccessKey, awsSecret);
        AmazonSimpleEmailService client = AmazonSimpleEmailServiceClientBuilder.standard()
            .withRegion(Regions.AP_SOUTH_1)
            .withCredentials(new AWSStaticCredentialsProvider(credentials))
            .build();
            
        SendEmailRequest request = new SendEmailRequest()
            .withDestination(new Destination().withToAddresses(to))
            .withMessage(new Message()
                .withBody(new Body().withHtml(new Content().withCharset("UTF-8").withData(htmlBody)))
                .withSubject(new Content().withCharset("UTF-8").withData(subject)))
            .withSource(from); // 使用组合后的发件人信息
            
        client.sendEmail(request);
    } catch (Exception e) {
        LOGGER.error(String.format("Error while sending email: %s", e.getMessage()));
        throw new IllegalArgumentException(MessageEnum.FAILED_TO_SEND_AN_EMAIL.name());
    }
}

额外注意:

  • 这种格式完全符合邮件协议的RFC标准,不需要对中文、空格或特殊字符额外编码,SES会自动处理。
  • 确保你用来发送邮件的邮箱(比如noreply@domain.com)已经在AWS SES中完成验证,避免邮件被拒收或进入垃圾箱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 16:34:09