java - 如何从 javax.mail.internet.MimeMessage 重置收件人列表

标签 java email jakarta-mail

我有一个场景,我需要向发件人发送批量电子邮件。我一次只能发送 10 封邮件。 所以我将所有邮件内容设置为变量,然后一次只添加十个收件人。 然后在我发送电子邮件后,我再次添加十个下一个收件人。

private void addRecipients(Message pMessage, List pRecipients, Message.RecipientType pType, int pNum, int pOffset, int pBulkSize){
for (int i = 0; i < pRecipients.size(); i++) {
        int offset = pNum + i;
        if (pBulkSize != 0 && (offset < pOffset || offset >= pOffset + pBulkSize)) {
            continue;
        }
Address a;
Object r = pRecipients.get(i);
pMessage.addRecipient(pType, a);
}

但问题是我无法从变量中删除最后十个收件人。

Transport.send(message);

在这一行之后,我的循环重新启动并再次调用 addRecipients 方法。但是现在对象

MimeMessage message = getIntialEmailConfiguration();

消息也有以前的收件人。

我想知道如何重置该属性并删除现有收件人。

最佳答案

使用 Message.setRecipients这将删除并应用多个地址。

您的代码示例无法编译,因为“地址 a”从未被赋值。

关于java - 如何从 javax.mail.internet.MimeMessage 重置收件人列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25927922/

相关文章:

代理相关代码的Java集成测试

python - Django utf-8 电子邮件带有损坏的符号

python - Python 的 phpMailer php 类在哪里?

java - 消息字符集

java - 向不同时区的用户列表发送电子邮件?

java - 如何使用自定义键将@OneToMany 映射到java.util.Map?

Java 将扫描仪传递给方法

java - 我如何以编程方式发送图片作为电子邮件的一部分

java - 重定向退回邮件,并从退回邮件中读取附件名

java - 在 Java 中从 "Simple Class Name"转换为 "Full Class Name"到对象的最佳方法