如何通过java邮件api向多个收件人发送邮件

如何通过java邮件api向多个收件人发送邮件,java,jakarta-mail,Java,Jakarta Mail,下面是通过java邮件api发送邮件的java程序。现在的问题是,我想在mailTo字段中输入多个地址。在下面的代码中,您可以看到mailTo有一个条目,即avdq@abc.com. 但是,我希望将多个条目作为avdq@abc.com, tvdq@abc.com,及pvdq@abc.com. 请告知如何实现这一目标 公共类abcMailTest{ 公共静态void main(字符串[]args){ 字符串mailSmtpHost=“77.77.77.77”; 字符串mailsmtport=“43

下面是通过java邮件api发送邮件的java程序。现在的问题是,我想在mailTo字段中输入多个地址。在下面的代码中,您可以看到mailTo有一个条目,即avdq@abc.com. 但是,我希望将多个条目作为avdq@abc.com, tvdq@abc.com,及pvdq@abc.com. 请告知如何实现这一目标

公共类abcMailTest{
公共静态void main(字符串[]args){
字符串mailSmtpHost=“77.77.77.77”;
字符串mailsmtport=“4321”;
字符串mailTo=”avdq@abc.com";
//字符串mailCc=”avdg@abc.com ";
字符串mailFrom=”avdg@abc.com";
字符串mailSubject=“sgdtetrtrr”;
String mailText=“邮件正文的测试邮件”;
sendEmail(mailTo、mailFrom、mailssubject、mailText、mailSmtpHost、mailsmtport);
}
公共静态void sendmail(字符串收件人、字符串发件人、字符串主题、字符串文本、字符串smtpHost、字符串mailsmtport){
试一试{
属性=新属性();
properties.put(“mail.smtp.host”,smtpHost);
properties.put(“mailSmtpPort”,mailSmtpPort);
//获取会话
会话emailSession=Session.getDefaultInstance(属性);
emailSession.setDebug(true);
//创建消息
Message emailMessage=新的mimessage(emailSession);
emailMessage.addRecipient(Message.RecipientType.TO,新Internet地址(TO));
地址[]抄送=新地址[]{
新因特网地址(“avdg@abc.com"),
新因特网地址(“sWER@gmail.com")};
emailMessage.addRecipients(Message.RecipientType.CC,CC);
emailMessage.setFrom(新的Internet地址(from));
emailMessage.setSubject(主题);
//创建消息部分
BodyPart messageBodyPart=新的MimeBodyPart();
setContent(text,“text/html”);
messageBodyPart.setText(文本);
//创建多部分消息
Multipart Multipart=新的MimeMultipart();
multipart.addBodyPart(messageBodyPart);
//第二部分是附件
MimeBodyPart attachPart=新的MimeBodyPart();
String filename=“c:\\abc.pdf”;
DataSource source=新文件DataSource(文件名);
setDataHandler(新的DataHandler(源));
attachPart.setFileName(文件名);
多部件添加车身部件(附件部件);
//发送完整的消息部分
emailMessage.setContent(多部分);
emailSession.setDebug(true);
传输。发送(电子邮件);
}捕获(地址e){
e、 printStackTrace();
}捕获(消息异常e){
e、 printStackTrace();
}
}
}
试试这个

 String cc = "avdg@abc.com;sWER@gmail.com";
    StringTokenizer st = new StringTokenizer(cc,":");
    while(st.hasMoreTokens()) {
    emailMessage.addRecipients(Message.RecipientType.CC, InternetAddress.parse(st.nextToken(),false);
    }
试试这个

 String cc = "avdg@abc.com;sWER@gmail.com";
    StringTokenizer st = new StringTokenizer(cc,":");
    while(st.hasMoreTokens()) {
    emailMessage.addRecipients(Message.RecipientType.CC, InternetAddress.parse(st.nextToken(),false);
    }

你只需要做和你为cc field做的一样的事情

Address[] to = new Address[] {InternetAddress.parse("avdq@abc.com"),
                               InternetAddress.parse("tvdq@abc.com"), 
                               InternetAddress.parse("pvdq@abc.com")};
message.addRecipients(Message.RecipientType.TO, to);

你只需要做和你为cc field做的一样的事情

Address[] to = new Address[] {InternetAddress.parse("avdq@abc.com"),
                               InternetAddress.parse("tvdq@abc.com"), 
                               InternetAddress.parse("pvdq@abc.com")};
message.addRecipients(Message.RecipientType.TO, to);

此链接具有您所需的内容此链接具有您所需的内容,或者,如果您希望它出现在“收件人”标题中,如最初所问,您可以使用“Message.RecipientType.TO”而不是“Message.RecipientType.CC”来执行相同的操作。setTo(…)基本上只不过是addRecipients()的一个快捷方式而已。或者,如果您希望它出现在to头中,正如最初所要求的,您可以对“Message.RecipientType.to”而不是“Message.RecipientType.CC”执行相同的操作。setTo(…)基本上只是addRecipients()的快捷方式。。。