1. private Session session;
  2. private Transport transport;
  3. private String mailHost = "";
  4. private String sender_username = "";
  5. private String sender_password = "";
  6. private String contentPart_Type = "";
  7. private Properties properties = new Properties();
  8. /*
  9. * 初始化方法
  10. */
  11. public JavaMailWithAttachment() {
  12. try {
  13. FileInputStream is=new FileInputStream("E:/workspace1.6/ICRM-H5/src/mailServer.properties");
  14. properties.load(is);
  15. this.mailHost = properties.getProperty("mail.smtp.host");
  16. this.sender_username = properties.getProperty("mail.sender.username");
  17. this.sender_password = properties.getProperty("mail.sender.password");
  18. this.contentPart_Type = properties.getProperty("mail.contentPart.type");
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. session = Session.getInstance(properties);
  23. session.setDebug(true); //开启后有调试信息,发布时关闭
  24. message = new MimeMessage(session);
  25. }
  26. /**
  27. * 发送邮件
  28. * @param subject
  29. *               邮件主题
  30. * @param sendHtml
  31. *               邮件内容
  32. * @param toUser
  33. *               收件人  多个时参数形式  :  "xxx@xxx.com,xxx@xxx.com,xxx@xxx.com"
  34. * @param ccUser
  35. *               抄送人   同上
  36. * @param bccUser
  37. *               密送人   同上
  38. * @param attachment
  39. *               附件
  40. */
  41. public void doSendHtmlEmail(String subject, String sendHtml,
  42. String  toUser, String ccUser, String bccUser, File [] attachment){
  43. try {
  44. // 发件人
  45. InternetAddress from = new InternetAddress(sender_username);
  46. message.setFrom(from);
  47. // 设置多个收件人地址
  48. if(null != toUser && !toUser.isEmpty()){
  49. @SuppressWarnings("static-access")
  50. InternetAddress[] internetAddressTo = new InternetAddress().parse(toUser);
  51. message.setRecipients(Message.RecipientType.TO, internetAddressTo);
  52. }
  53. // 设置多个抄送地址
  54. if(null != ccUser && !ccUser.isEmpty()){
  55. @SuppressWarnings("static-access")
  56. InternetAddress[] internetAddressCC = new InternetAddress().parse(ccUser);
  57. message.setRecipients(Message.RecipientType.CC, internetAddressCC);
  58. }
  59. // 设置多个密送地址
  60. if(null != bccUser && !bccUser.isEmpty()){
  61. @SuppressWarnings("static-access")
  62. InternetAddress[] internetAddressBCC = new InternetAddress().parse(bccUser);
  63. message.setRecipients(Message.RecipientType.BCC, internetAddressBCC);
  64. }
  65. // 发送日期
  66. message.setSentDate(new Date());
  67. // 邮件主题
  68. message.setSubject(subject);
  69. // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
  70. Multipart multipart = new MimeMultipart();
  71. // 添加邮件正文
  72. BodyPart contentPart = new MimeBodyPart();
  73. contentPart.setContent(sendHtml, contentPart_Type);
  74. multipart.addBodyPart(contentPart);
  75. BodyPart attachmentBodyPart = null;
  76. // 添加附件的内容
  77. if (null != attachment && attachment.length != 0) {
  78. for (File file : attachment) {
  79. attachmentBodyPart = new MimeBodyPart();
  80. DataSource source = new FileDataSource(file);
  81. attachmentBodyPart.setDataHandler(new DataHandler(source));
  82. //MimeUtility.encodeWord可以避免文件名乱码
  83. attachmentBodyPart.setFileName(MimeUtility.encodeWord(file.getName()));
  84. multipart.addBodyPart(attachmentBodyPart);
  85. }
  86. }
  87. // 将multipart对象放到message中
  88. message.setContent(multipart);
  89. // 保存邮件
  90. message.saveChanges();
  91. // smtp验证
  92. transport = session.getTransport("smtp");
  93. transport.connect(mailHost, sender_username, sender_password);
  94. // 发送
  95. transport.sendMessage(message, message.getAllRecipients());
  96. System.out.println("发送成功!");
  97. } catch (Exception e) {
  98. e.printStackTrace();
  99. } finally {
  100. if (transport != null) {
  101. try {
  102. transport.close();
  103. } catch (MessagingException e) {
  104. e.printStackTrace();
  105. }
  106. }
  107. }
  108. }

javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)的更多相关文章

  1. javaMail 邮件发送和接收示例,支持正文图片、html、附件(转)

    转自:https://blog.csdn.net/star_fly4/article/details/52037587 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文 ...

  2. spring-boot-route(二十二)实现邮件发送功能

    在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送.在Spring项目中发送邮件需要封装复杂的消息体,不太方便.而在Spring Boot项目中发送邮件就太简单了,下面一起来看看 ...

  3. .NET开发邮件发送功能的全面教程(含邮件组件源码)

    今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         ...

  4. .NET开发邮件发送功能

    .NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知 ...

  5. 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇

    在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...

  6. redmine邮件发送功能配置详解

    redmine的邮件发送功能还是很有用的.像项目有更新啦,任务分配啦,都能邮件发送的相关责任人.我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了.查了网上的资料,都是讲修改下 ...

  7. shell邮件发送功能实现

    本文中以163邮箱为例,测试shell邮件发送功能.常见的工具有:mailx.sendmail.mutt等. 1.设置邮件客户端 (1)启用pop3.smtp服务,以支持第三方客户端支持 (2)设置授 ...

  8. SpringBoot 2.X从0到1实现邮件发送功能

    Spring中提供了JavaMailSender接口实现邮件发送功能,在SpringBoot2.X中也封装了发送邮件相关的Starter并且提供了自动化配置. 本文目录 一.添加对应的Starter二 ...

  9. System.Net邮件发送功能踩过的坑

    System.Net邮件发送功能踩过的坑 目录 System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 2.邮件发送授权码与邮件密码 3.通过邮件密码来发送邮件 4.Wiresh ...

随机推荐

  1. SDP(9):MongoDB-Scala - data access and modeling

    MongoDB是一种文件型数据库,对数据格式没有硬性要求,所以可以实现灵活多变的数据存储和读取.MongoDB又是一种分布式数据库,与传统关系数据库不同的是,分布式数据库不支持table-join,所 ...

  2. js将汉字转为相应的拼音

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  3. error: No curses/termcap library found的解决办法

    mysql版本:5.1.30 已经不记得这次是第几次安装mysql了,遇到这个问题倒是第一次. 之前在tar,./configure,make,make install 经典四步时,从来没有想过其中的 ...

  4. php学习笔记位运算

    位运算 源码:用二进制表示一个数,这个码就是源码. 比如2====00000000 00000000 0000000 00000010 正数的反码 源码 补码都一样 负数的源码是符号位取反.第一个位  ...

  5. Cortex-M3

    大家听说过Cortex-M3吗?在嵌入式处理器的世界,cortex-M3是一位人见人爱的后生.它的成本和功耗低,可配置性很高.如今,很多ARM的工程师加入了cortex-M3的学习与开发中,WIZne ...

  6. Flex设置LinkButton的背景色

    1.设计思路    由于Flex中没有设置LinkButton的背景色的属性,现在得从两个方面入手:第一,直接通过调用样式方法画出LinkButton的背景色:第二,设置LinkButton的背景图片 ...

  7. 异常-----freemarker.core.ParseException: Token manager error

    一,案例一 1.1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: L ...

  8. jsp学习笔记之:4种基本语法

    一. jsp注释:<%-- js注释 --%> 二. jsp声明: <%! public int count; public String test(){return "j ...

  9. linux三剑客之一grep

    正则表达式(Regular Expression) 目录 起源 正则表达式是什么? 两类基本正则表达式 正则表达式元字符 Linux上文本三剑客 小试牛刀 总结 一.起源   正则表达式这个名词,相信 ...

  10. Android动态类生成预加载-dexmaker使用

    一.dexmaker简单介绍 dexmaker是运行在Android Dalvik VM上,利用Java编写,来动态生成DEX字节码的API.如果读者了解AOP编程的话,应该听说过cglib or A ...