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

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.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:

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..net/detail/qq741437836/9600110

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

  1. javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)

    先看源码,再来理解,可以直接使用! JavaMailWithAttachment.java: <span style="font-family: Arial, Helvetica, s ...

  2. Java技术:SpringBoot实现邮件发送功能

    邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...

  3. java mail 抄送多用户,JavaMail 发送邮件,收件人为多人,抄送多人。其中包含收件人邮箱错误时的处理...

    1.给客户做一个发邮件的功能.收件人和抄送人可能为单个人,也可能为多个人.但是当收件人或抄送人中某一个邮箱的格式错误时,整个邮件发送就会出错停止发送.但我还需要给那些其余的人发邮件,该怎么办? 2.解 ...

  4. Java实战-用Java mail实现Exchange发邮件给你喜欢的人

    目录 1. 官方指导文章 2. 需要用到com.microsoft.ews-java-api 2.1 maven中添加 2.2 gradle中添加 3. 完整代码:新建一个MailUtil.java类 ...

  5. java实现邮件发送共鞥_Java实现复杂邮件发送功能(基于JavaMail)的实例

    这篇文章主要为大家详细介绍了基于JavaMail的Java实现复杂邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 上一篇文章 基于 JavaMail 的 Java 邮件发送:简单邮件发 ...

  6. java 发送邮件添加附件,Java实现带附件的邮件发送功能

    这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现邮件发送功能的具体代码,供大 ...

  7. java实现邮件发送_基于JavaMail的Java实现简单邮件发送功能

    电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等.但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.本 ...

  8. Java Mail+Thymeleaf模板引擎实现发送HTML格式邮件

    Java Mail+Thymeleaf模板引擎实现发送HTML格式邮件 基于Spring boot 1.5,Spring boot 2.x请使用Spring boot mail 1.依赖坐标 // b ...

  9. php pear mail smtp 不验证,怎么在php中使用pear_smtp实现一个邮件发送功能

    怎么在php中使用pear_smtp实现一个邮件发送功能 发布时间:2020-12-22 16:24:35 来源:亿速云 阅读:76 作者:Leah 怎么在php中使用pear_smtp实现一个邮件发 ...

最新文章

  1. 【连载】优秀程序员的 45 个习惯之习惯25
  2. ckeditor缺少图像源文件地址_微软的模拟飞行带你开着飞机浏览世界附下载地址...
  3. 20172303 2017-2018-2 《程序设计与数据结构》第4周学习总结
  4. JQuery/JS select标签动态设置选中值、设置禁止选择 button按钮禁止点击 select获取选中值...
  5. 实现自己的.NET Core配置Provider之EF
  6. 机器学习知识总结系列-机器学习中的数学-概率与数理统计(1-3-1)
  7. 苹果AirPods 2新爆料:无线充电盒重量增加 支持快速充电
  8. python绘制矩形图_Python。在底图中绘制矩形
  9. 【雷达通信】基于matlab Omiga-K算法SAR回波生成和成像【含Matlab源码 1184期】
  10. coolpro2 剪切并淡出
  11. 在线教育平台项目——设计 接口定义
  12. 高端域名出售如何选择交易平台?
  13. 云端服务器的稳定方法,云端服务器的问题怎么解决
  14. C++设计模式23——访问者模式
  15. pd.concat()和pd.merge()
  16. MySQL死锁解决之道
  17. 通过nodejs 服务器读取HTML文件渲染到页面
  18. esp32➡遥控篇➡turtlesim➡mobot➡turtlebot3
  19. C语言基础知识点汇总(1)
  20. 360旗下APP再遭苹果下架 巨头频遭“一刀切”

热门文章

  1. 嵌入式linux启动画面,修改嵌入式linux启动画面(一)
  2. 操作系统没有声音,是因为这个原因,汗!
  3. 【数据蒋堂】第 47 期:Hadoop – 一把杀鸡用的牛刀
  4. 后台管理界面-- 管理员管理[3]
  5. Python金融数据分析之路(二) 数据准备
  6. TCP/IP协议浅入浅出1
  7. 钛备份 v7.4.0.2 安卓最新版
  8. 人工智能创业盈利点在何处
  9. CVPR 2016 全部文章摘要阅读
  10. K8s PV和PVC(动态)