java mail 多个收件人_javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)...

该代码实现了一个JavaMailWithAttachment类,用于发送带有附件的HTML邮件。通过读取配置文件获取邮件服务器信息,初始化Session并设置调试模式。邮件的收件人、抄送人和密送人可以通过参数传递,同时支持添加多个附件。发送邮件前,先进行SMTP验证,然后通过Transport发送消息,最后关闭连接。
摘要由CSDN通过智能技术生成

private Session session;

private Transport transport;

private String mailHost = "";

private String sender_username = "";

private String sender_password = "";

private String contentPart_Type = "";

private Properties properties = new Properties();

/*

* 初始化方法

*/

public JavaMailWithAttachment() {

try {

FileInputStream is=new FileInputStream("E:/workspace1.6/ICRM-H5/src/mailServer.properties");

properties.load(is);

this.mailHost = properties.getProperty("mail.smtp.host");

this.sender_username = properties.getProperty("mail.sender.username");

this.sender_password = properties.getProperty("mail.sender.password");

this.contentPart_Type = properties.getProperty("mail.contentPart.type");

} catch (IOException e) {

e.printStackTrace();

}

session = Session.getInstance(properties);

session.setDebug(true); //开启后有调试信息,发布时关闭

message = new MimeMessage(session);

}

/**

* 发送邮件

* @param subject

*               邮件主题

* @param sendHtml

*               邮件内容

* @param toUser

*               收件人  多个时参数形式  :  "xxx@xxx.com,xxx@xxx.com,xxx@xxx.com"

* @param ccUser

*               抄送人   同上

* @param bccUser

*               密送人   同上

* @param attachment

*               附件

*/

public void doSendHtmlEmail(String subject, String sendHtml,

String  toUser, String ccUser, String bccUser, File [] attachment){

try {

// 发件人

InternetAddress from = new InternetAddress(sender_username);

message.setFrom(from);

// 设置多个收件人地址

if(null != toUser && !toUser.isEmpty()){

@SuppressWarnings("static-access")

InternetAddress[] internetAddressTo = new InternetAddress().parse(toUser);

message.setRecipients(Message.RecipientType.TO, internetAddressTo);

}

// 设置多个抄送地址

if(null != ccUser && !ccUser.isEmpty()){

@SuppressWarnings("static-access")

InternetAddress[] internetAddressCC = new InternetAddress().parse(ccUser);

message.setRecipients(Message.RecipientType.CC, internetAddressCC);

}

// 设置多个密送地址

if(null != bccUser && !bccUser.isEmpty()){

@SuppressWarnings("static-access")

InternetAddress[] internetAddressBCC = new InternetAddress().parse(bccUser);

message.setRecipients(Message.RecipientType.BCC, internetAddressBCC);

}

// 发送日期

message.setSentDate(new Date());

// 邮件主题

message.setSubject(subject);

// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件

Multipart multipart = new MimeMultipart();

// 添加邮件正文

BodyPart contentPart = new MimeBodyPart();

contentPart.setContent(sendHtml, contentPart_Type);

multipart.addBodyPart(contentPart);

BodyPart attachmentBodyPart = null;

// 添加附件的内容

if (null != attachment && attachment.length != 0) {

for (File file : attachment) {

attachmentBodyPart = new MimeBodyPart();

DataSource source = new FileDataSource(file);

attachmentBodyPart.setDataHandler(new DataHandler(source));

//MimeUtility.encodeWord可以避免文件名乱码

attachmentBodyPart.setFileName(MimeUtility.encodeWord(file.getName()));

multipart.addBodyPart(attachmentBodyPart);

}

}

// 将multipart对象放到message中

message.setContent(multipart);

// 保存邮件

message.saveChanges();

// smtp验证

transport = session.getTransport("smtp");

transport.connect(mailHost, sender_username, sender_password);

// 发送

transport.sendMessage(message, message.getAllRecipients());

System.out.println("发送成功!");

} catch (Exception e) {

e.printStackTrace();

} finally {

if (transport != null) {

try {

transport.close();

} catch (MessagingException e) {

e.printStackTrace();

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值