javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)
2017-05-31 22:26
519 查看
javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)
JavaMailWithAttachment.Java:[java] view
plain copy
<span style="font-family: Arial, Helvetica, sans-serif;">private MimeMessage message;</span>
[java] view
plain copy
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();
}
}
}
}
mailServer.properties:
[html] view
plain copy
mail.smtp.host = smtp.ym.163.com
mail.smtp.auth = true
mail.sender.username = xxxx@xxxx.com
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.csdn.NET/detail/qq741437836/9600110
相关文章推荐
- javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)
- JavaMail邮件发送功能(包含多收件人 多抄送人 多附件)
- JavaMail发送带多个附件的邮件,多个收件人,多个抄送人
- JavaMail发送带多个附件的邮件,多个收件人,多个抄送人
- C#利用System.Net发送邮件(带 抄送、密送、附件、html格式的邮件)
- java发送邮件,多人单人发送,抄送,密送,附件
- 邮件发送技巧:TO, CC, BCC(收件人、抄送、密送)
- javamail实现腾讯邮箱(企业邮箱,qq邮箱)发送邮件(多收件人多附件)
- JavaMail实现带附件和图片的邮件发送功能
- java实现邮件抄送,密送,多个附件发送
- javaMail 的邮件发送包括了抄送(CC),密送(BCC)采用springBoot
- Linux 发送邮件,抄送+附件,多收件人
- C#利用System.Net发送邮件(带 抄送、密送、附件、html格式的邮件)
- java实现 邮件抄送,密送,多个附件 发送
- .net jMail邮件发送(含抄送、密送、多发、日志记录)实例代码
- 提交订单系统自动发送邮件到收件人邮箱优化(邮件正文内容为当天数据,附件内容为当月数据)
- .NET C# 群发 HTML格式 带附件 中文发送者 密送 抄送 的邮件
- Java程序中使用JavaMail发送带图片和附件的邮件
- JavaMail实现带有附件、内嵌图片的邮件发送
- Kettle实现邮件发送并带附件功能