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. 【Unity3D】Unity3D开发《我的世界》之七、番外篇

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_07.html 本来上一篇就结束了,但是有小伙伴私信我觉得还差了很多重要的内容,比如 ...

  2. Android 热补丁实践之路

    最新github上开源了很多热补丁动态修复框架,主要的大致有: https://github.com/dodola/HotFix https://github.com/jasonross/Nuwa h ...

  3. mxnet:结合R与GPU加速深度学习

    转载于统计之都,http://cos.name/tag/dmlc/,作者陈天奇 ------------------------------------------------------------ ...

  4. API接口签名校验

    在开发app中,我们经常要为app提供接口.但是为了保证数据的安全,我们通常会对接口的参数进行加密. 1.不验证的接口api api接口请求,"http://www.xx.com/getUs ...

  5. FusionCharts封装-单系列图

    ColumnChart.java: /** * @Title:ColumnChart.java * @Package:com.fusionchart.model * @Description:柱形图 ...

  6. hi3531的hifb显示1080p60Hz

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  7. 使用ffserver实现转发实时流媒体(摄像头捕获)

    本系统为ubuntu 10.04LTS 说明1:本实验在本机成功测试通过: 说明2:本实验仅仅测试了视频流,未测试音频流. 1.配置ffserver.conf -------------------- ...

  8. Excel 2010高级应用-气泡图(八)

    Excel 2010高级应用-气泡图(八) 基本操作如下: 1.新建空白文档,并命名为气泡图,找到插入中的气泡图样 2.在其他图表中找到气泡图图样 3.单击气泡图图样,生成空白气泡图框 4.在气泡图图 ...

  9. Windows控制台下绘制简单图形

    最近接触到一个很有意思的问题,如何在Windows控制台下画图,翻遍了C的头文件也没找到画图的函数,好吧,那就用Windows提供的API函数吧,看来想移植是没戏了.先画一个简单的图,类似心电图那种吧 ...

  10. The currently displayed page contains invalid values.

    1 错误描述 2 错误原因 3 解决办法