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

群发邮件时如何让各收件人仅在收件人栏看到自己的邮箱地址?

Java 邮件群发单显解决方案

要实现每个收件人仅能看到自身地址在收件人栏,采用复用SMTP连接单独给每个收件人发信的方案即可解决,性能和批量发送几乎没有差异,也能避免BCC模式隐去所有收件人信息的问题。

实现逻辑

  • 仅建立一次SMTP连接,避免重复建联带来的性能损耗
  • 遍历所有收件人,为每个收件人单独构造邮件实例,邮件的TO字段仅填写当前收件人地址
  • 复用已建立的SMTP连接批量发送所有单收件人邮件,全部发送完成后再关闭连接

修改后可运行代码

Transport trans = session.getTransport("smtp");
trans.connect();

try {
    // 遍历所有收件人逐个发送
    for (Address recipient : toClient) {
        // 为当前收件人构造独立邮件对象
        MimeMessage singleMsg = new MimeMessage(session);
        singleMsg.setFrom(new InternetAddress("test44@test.com", "test account"));
        // 仅设置当前单个收件人为收件人
        singleMsg.setRecipient(Message.RecipientType.TO, recipient);
        singleMsg.setSubject(title);
        singleMsg.setContent(content, "text/html; charset=UTF-8");
        singleMsg.saveChanges();
        // 发送当前邮件
        trans.sendMessage(singleMsg, new Address[]{recipient});
    }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    trans.close();
}

补充说明

如果需要针对不同收件人做内容个性化替换,直接在遍历循环中修改content内容即可,扩展成本极低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:45:00