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 ...
随机推荐
- SDP(9):MongoDB-Scala - data access and modeling
MongoDB是一种文件型数据库,对数据格式没有硬性要求,所以可以实现灵活多变的数据存储和读取.MongoDB又是一种分布式数据库,与传统关系数据库不同的是,分布式数据库不支持table-join,所 ...
- js将汉字转为相应的拼音
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- error: No curses/termcap library found的解决办法
mysql版本:5.1.30 已经不记得这次是第几次安装mysql了,遇到这个问题倒是第一次. 之前在tar,./configure,make,make install 经典四步时,从来没有想过其中的 ...
- php学习笔记位运算
位运算 源码:用二进制表示一个数,这个码就是源码. 比如2====00000000 00000000 0000000 00000010 正数的反码 源码 补码都一样 负数的源码是符号位取反.第一个位 ...
- Cortex-M3
大家听说过Cortex-M3吗?在嵌入式处理器的世界,cortex-M3是一位人见人爱的后生.它的成本和功耗低,可配置性很高.如今,很多ARM的工程师加入了cortex-M3的学习与开发中,WIZne ...
- Flex设置LinkButton的背景色
1.设计思路 由于Flex中没有设置LinkButton的背景色的属性,现在得从两个方面入手:第一,直接通过调用样式方法画出LinkButton的背景色:第二,设置LinkButton的背景图片 ...
- 异常-----freemarker.core.ParseException: Token manager error
一,案例一 1.1.错误描述 freemarker.core.ParseException: Token manager error: freemarker.core.TokenMgrError: L ...
- jsp学习笔记之:4种基本语法
一. jsp注释:<%-- js注释 --%> 二. jsp声明: <%! public int count; public String test(){return "j ...
- linux三剑客之一grep
正则表达式(Regular Expression) 目录 起源 正则表达式是什么? 两类基本正则表达式 正则表达式元字符 Linux上文本三剑客 小试牛刀 总结 一.起源 正则表达式这个名词,相信 ...
- Android动态类生成预加载-dexmaker使用
一.dexmaker简单介绍 dexmaker是运行在Android Dalvik VM上,利用Java编写,来动态生成DEX字节码的API.如果读者了解AOP编程的话,应该听说过cglib or A ...