相信小伙伴已经体验到了邮件发送成功带来的快感了,最主要的是它不收费!,但是上面只说了发送给一个人得情景,接下来就看看如何发送给多人。
在正式写代码之前,我们先约定一个规则,多人得邮箱之间用英文逗号隔开,eg:XXXXX@qq.com,XXXXXX@qq.com
//对收件人,抄送人进行切割
private static InternetAddress[] getAddress(String email) throws AddressException {
//不能使用string类型的类型,这样只能发送一个收件人
List list = new ArrayList();
//对输入的多个邮件进行逗号分割
String[] median = email.split(",");
for (int i = 0; i < median.length; i++) {
list.add(new InternetAddress(median[i]));
}
//将list强制转化为数组
return (InternetAddress[]) list.toArray(new InternetAddress[list.size()]);
}
以上得方法就是对多人又将进行切割,将以上代码集成到我们第一章里面去即可,并且我在里还新增了抄送人,完整代码如下:
public static void sendSimpleMailMessage(MailModel mailModel) throws MessagingException, IOException, TransformerException, ParserConfigurationException {
Properties props = new Properties(){{
// 设置邮件服务器主机名
setProperty("spring.mail.host", "smtp.qq.com");
// 发送邮件协议名称
setProperty("spring.mail.protocol", "stmp");
}};
//根据环境配置设置session
Session session = Session.getInstance(props);
//消息发送主体
MimeMessage message = new MimeMessage(session);
message.setSubject("我是标题");
message.setText("我是内容");
message.setFrom(new InternetAddress("你的邮箱账号"));
//接收人
message.setRecipients(Message.RecipientType.TO, getAddress("多人接受邮箱账号"));
//抄送人
message.setRecipients(Message.RecipientType.CC, getAddress("多人抄送邮箱账号"));
message.saveChanges();
Transport trans = session.getTransport();
trans.connect(MailModel.getHost(), MailModel.getPort(), MailModel.getUsername(), MailModel.getPassword());
trans.sendMessage(message, message.getAllRecipients());
trans.close();
}
//对收件人,抄送人进行切割
private static InternetAddress[] getAddress(String email) throws AddressException {
//不能使用string类型的类型,这样只能发送一个收件人
List list = new ArrayList();
//对输入的多个邮件进行逗号分割
String[] median = email.split(",");
for (int i = 0; i < median.length; i++) {
list.add(new InternetAddress(median[i]));
}
//将list强制转化为数组
return (InternetAddress[]) list.toArray(new InternetAddress[list.size()]);
}
有空再写完
网友评论