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

使用org.springframework.mail.javamail的toBcc()自定义收件人显示内容求助

解决JavaMail BCC发送时收件人显示自定义内容的问题

当只通过BCC发送邮件时,因为To字段为空,邮件客户端会默认显示"undisclosed-recipients"。要自定义这个显示内容,核心思路是给To字段设置一个仅用于显示的占位收件人,实际收件人仍通过BCC添加,具体实现步骤如下:

  • 设置显示用的To字段:创建一个InternetAddress对象,指定一个占位邮箱(可以是不存在的地址)和你想要的自定义显示文本,通过MimeMessageHelper.setTo()方法设置到邮件中。
  • 添加实际BCC收件人:继续使用addBcc()方法添加所有实际收件人,批量添加可传入数组或集合。

示例代码:

// 注入JavaMailSender实例
@Autowired
private JavaMailSender mailSender;

public void sendBccMailWithCustomDisplay() throws MessagingException {
    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message, true);

    // 设置自定义显示的收件人文本,占位邮箱可随意填写
    InternetAddress displayRecipient = new InternetAddress("placeholder@yourdomain.com", "全体用户");
    helper.setTo(new InternetAddress[]{displayRecipient});

    // 批量添加实际BCC收件人
    String[] bccRecipients = {"user1@example.com", "user2@example.com", "user3@example.com"};
    helper.addBcc(bccRecipients);

    // 邮件其他配置
    helper.setSubject("批量通知邮件");
    helper.setText("这是一封批量发送的通知邮件", true);

    mailSender.send(message);
}
  • 注意事项:
    • 占位邮箱无需真实存在,因为邮件不会实际发送到该地址,仅用于客户端显示。
    • 这种方式既保留了BCC隐藏收件人列表的特性,又实现了自定义显示文本的需求。
    • 避免将大量收件人放入To字段,防止泄露所有收件人邮箱信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 12:36:04