所以最初我正在编写一个营销电子邮件应用程序,它可以向成千上万的收件人发送电子邮件。我天真地做着这样的事情:
for(all emails)
{
HtmlEmail email = new HtmlEmail();
email.setBody(theHtml);
email.addTo(currentEmail);
email.send();
}
上面的问题是,在收到这么多邮件之后,垃圾收集器必须启动并删除陈旧的 HtmlEmail 对象,这些对象会占用大量 CPU。我现在正在尝试执行以下操作:
HtmlEmail email = new HtmlEmail();
email.setBody(theHtml);
for(all emails)
{
//Option1: Use below line of code but need to remove the previous "current email"; that is, not send this to all the previous recipients AND the new one
//Line to remove previous email from HtmlEmail object
email.addTo(currentEmail, currentName);
//or option 2: email.setTo(new String[]{currentEmail});
}
未注释方法的问题是 addTo 不会删除以前添加的电子邮件地址。我当然不想将相同的电子邮件发送给相同的收件人。非常非常灾难。因此,如果我采用这种方法,我需要一种删除以前电子邮件的方法。我想做类似的事情
email.setTo(Arrays.asList(new String[]{}));
问题在于 api 声明所有包含的字符串必须是有效的电子邮件地址,否则会引发异常。另一种选择是email.setTo
每次都使用,但不能包含收件人姓名。任何人都可以建议一种方法来执行上述操作吗?如果您需要澄清,我知道这有点难以用语言表达。提前致谢。