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. 如何在模拟器里体验微软HoloLens

    众所周知,微软的HoloLens以及MR设备售价都比较高,这让不少感兴趣的朋友们望而却步,本篇教程将向大家介绍如何在模拟器里体验传说中的HoloLens. 1.需要准备的硬件: 智能手机一台(WP.A ...

  2. H3C无线路由器安装与设置

    一.电脑与路由器的连接利用一根cat5e网线一头连接到电脑上笔记本或台式机都可以,另一头连接到无线路由器的LAN口任意LAN口都可以二.设置无线路由器完成路由器安装与电脑连接后,接下首次使用就需要设置 ...

  3. SyntaxError: Missing parentheses in call to 'print'

    C:\Users\konglb>python Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 17:26:49) [MSC v.1900 32 bit (I ...

  4. 4.1 PCIe总线的基础知识

    与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端.PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通 ...

  5. 八爪鱼采集器︱爬取外网数据(twitter、facebook)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 要想采集海外数据有两种方式:云采集+单机采集. ...

  6. php替换文件指定行的内容

    //第一种 利用file 函数 读取文件,每一行都是一个数组元素 $arr = file($file); $arr[$line] = "hello"; file_put_conte ...

  7. Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.HibernateTemplate

    1.错误描述 严重: Context initialization failed org.springframework.beans.factory.CannotLoadBeanClassExcept ...

  8. html中的块元素和内联元素的区别

    一.定义 块元素一般都从新行开始,它可以容纳内联元素和其他块元素,可设置高度.宽度和边距等. 内联元素一般都是基于语义级的基本元素,它只能容纳文本或其他内联元素,主要特点是:和其他元素位于同一行上,高 ...

  9. OpenStack_I版 6.Neutron部署

    Neutron是不能自己创建网络的,它需要借助插件才能创建虚拟网桥.网卡 依赖插件 配置ml2为核心插件 本次网络模型采用扁平化网络,不同的网络类型不同的配置,不同的使用方法 打开安全组功能 Linu ...

  10. poj1417菜鸡的详细题解(希望能帮助到和我一样陷于本题的新手)

    题意太麻烦就偷懒转载他人的题意..... 题意转载自http://blog.csdn.net/acm_cxlove/article/details/7854526       by---cxlove ...