javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)
- 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();
- }
- }
- }
- }
javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)的更多相关文章
- javaMail 邮件发送和接收示例,支持正文图片、html、附件(转)
转自:https://blog.csdn.net/star_fly4/article/details/52037587 一.RFC882文档简单说明 RFC882文档规定了如何编写一封简单的邮件(纯文 ...
- spring-boot-route(二十二)实现邮件发送功能
在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送.在Spring项目中发送邮件需要封装复杂的消息体,不太方便.而在Spring Boot项目中发送邮件就太简单了,下面一起来看看 ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- .NET开发邮件发送功能
.NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知 ...
- 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...
- redmine邮件发送功能配置详解
redmine的邮件发送功能还是很有用的.像项目有更新啦,任务分配啦,都能邮件发送的相关责任人.我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了.查了网上的资料,都是讲修改下 ...
- shell邮件发送功能实现
本文中以163邮箱为例,测试shell邮件发送功能.常见的工具有:mailx.sendmail.mutt等. 1.设置邮件客户端 (1)启用pop3.smtp服务,以支持第三方客户端支持 (2)设置授 ...
- SpringBoot 2.X从0到1实现邮件发送功能
Spring中提供了JavaMailSender接口实现邮件发送功能,在SpringBoot2.X中也封装了发送邮件相关的Starter并且提供了自动化配置. 本文目录 一.添加对应的Starter二 ...
- System.Net邮件发送功能踩过的坑
System.Net邮件发送功能踩过的坑 目录 System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 2.邮件发送授权码与邮件密码 3.通过邮件密码来发送邮件 4.Wiresh ...
随机推荐
- 最实用的Android开发学习路线分享
Android开发学习路线分享.Android发展主导移动互联发展进程,在热门行业来说,Android开发堪称火爆,但是,虽然Android有着自身种种优势,但对开发者的专业性要求也是极高,这种要求随 ...
- ORACLE ASMM与AMM的总结
概念对比介绍 相信有些人会对ORACLE当中的AMM(Automatic Memory Management)与ASMM(Automatic Shared Memory Management)有些 ...
- 使用WinDbg内核调试
首先你要配置好测试环境:参考VMware+Windgb+Win7 内核驱动调试 在你的主机上配置Symbols 配置sympath,C:\Users\Admin\Desktop\first\objch ...
- 笔记︱支持向量机SVM在金融风险欺诈中应用简述
本笔记源于CDA-DSC课程,由常国珍老师主讲.该训练营第一期为风控主题,培训内容十分紧凑,非常好,推荐:CDA数据科学家训练营 欺诈一般不用什么深入的模型进行拟合,比较看重分析员对业务的了解,从异常 ...
- grub2与grub区别
关于版本: GRUB2 使之版本号为1.98之后的grub:GRUB legacy(版本为0.97)是指GRUB,而非GRUB2,grub是指 grub1.97 和以前的,grub 2 指的是 gru ...
- JUnit4测试出错(一)
log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUn ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'user'
1.错误描述 2014-7-12 21:06:05 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager 信息: I ...
- Linux显示登录Shell信息
Linux显示登录Shell信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ finger -p Login Name Tty Idle Login Tim ...
- RHEL64 缺少ISO 9660图像 安装程序试图挂载映像#1,在硬盘上无法找到该映像
用光盘安装Linux,很容易,按照提示一步一步就好.如果没有光驱,只好想办法用硬盘或者U盘安装了. 首先说说怎样用U盘启动Linux的安装程序:1.将ISO镜像文件拷贝到U盘中,并解压到U盘根目录.将 ...
- TypeError: Error #1034: 强制转换类型失败:无法将 "" 转换为 Array。
1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 "" 转换为 Array. at mx.charts.series::LineSeries/ ...