java - 在 Java 中向多个收件人发送邮件

标签 java jakarta-mail

我想使用以下方法向多个收件人发送消息:

message.addRecipient(Message.RecipientType.TO, String arg1);

或者

message.setRecipients(Message.RecipientType.TO,String arg1);

但一个困惑是,在第二个参数中,如何传递多个地址,例如:

message.addRecipient(Message.RecipientType.CC, "abc@abc.example,abc@def.example,ghi@abc.example");

或者 message.addRecipient(Message.RecipientType.CC, "abc@abc.example;abc@def.example;ghi@abc.example");

我也可以使用其他方法发送消息,但我想知道上述方法的目的。

如果我不能使用它(因为到目前为止我还没有得到上述要求的任何答案)那么这个方法需要在邮件 API 中。

最佳答案

如果您多次调用 addRecipient,它会将给定收件人添加到给定时间的收件人列表中(TO、CCBCC)。

例如:

message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("abc@abc.example"));
message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("abc@def.example"));
message.addRecipient(Message.RecipientType.CC, InternetAddress.parse("ghi@abc.example"));

它将三个地址添加到抄送中。


如果您希望一次添加所有地址,您应该使用 setRecipientsaddRecipients 并为其提供地址数组

Address[] cc = new Address[] {InternetAddress.parse("abc@abc.example"),
                               InternetAddress.parse("abc@def.example"),
                               InternetAddress.parse("ghi@abc.example")};
message.addRecipients(Message.RecipientType.CC, cc);

您还可以使用 InternetAddress.parse 来解析地址列表:

message.addRecipients(Message.RecipientType.CC,
                      InternetAddress.parse("abc@abc.example,abc@def.example,ghi@abc.example"));

关于java - 在 Java 中向多个收件人发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13854037/

相关文章:

linux - 如何使用远程 SMTP 服务器(配置为在 Linux 环境中的本地主机上运行)从 Windows 机器发送电子邮件?

java - Android将gmt时间转换为可读日期

java - 如何通过反射从xml文件读取字段名称和类型来创建java对象?

java - 无法使用 JavaMail 连接到 Hotmail

Java Mail 的 Transport.send 即使使用 null mailSession 也能工作

Java邮件 : reply to all is including the original recipient

java - Android studio中的文件路径

java - Google Maps Utils IconGenerator 文本样式和背景

java - 通过 JSONObject 传递 Unicode 字符串时出错

java - NIO选择器OP_READ和OP_WRITE,关于处理它们的一些问题