2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > java mail 抄送多用户_javaMail邮件发送功能(多收件人 多抄送人 多密送人 多附件)...

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

时间:2020-12-04 14:41:55

相关推荐

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

先看源码,再来理解,可以直接使用!

JavaMailWithAttachment.java:

private MimeMessage message;

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@,xxx@"

* @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(, 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();

}

}

}

}

mailServer.properties:

mail.smtp.host = smtp.

mail.smtp.auth = true

mail.sender.username = xxxx@

mail.sender.password = xxxxx

mail.contentPart.type = text/html;charset=UTF-8

由于javaMail需要一个Properties来注册Session,因此创建一个Properties来写入javaMail所需要的注册信息

mail.smtp.host发送方的smtp服务器,现在默认的是网易企业邮箱的smtp服务器,可以根据不同的邮箱进行更改。

mail.smtp.auth向smtp服务器提交认证

mail.sender.username发送者邮箱

mail.smtp.password发送者邮箱密码

还需要两个jar包:activation.jar ,mail.jar

下载地址:http://download..net/detail/qq741437836/9600110

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。