话不多说,上代码--第一种,自己实现的,参考资料

javaMail 的邮件发送包括了抄送(CC),密送(BCC)采用springBoot

常用的邮件服务器名称、地址及SSL/非SSL协议端口号

Java Mail发送邮件(带多个附件)

引入的依赖为

      <!-- email --><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.5.4</version></dependency>
 @Testpublic void testEmail() throws Exception {/** 自己实现的 */MailUtil mailUtil = new MailUtil();List<File> attaches = new ArrayList<File>();File attach1 = new File("C:\\Users\\LYIHENG\\Desktop\\工作资料\\邮箱签名.docx");File attach2 = new File("C:\\Users\\LYIHENG\\Desktop\\工作资料\\演示文稿1.pptx");attaches.add(attach1);attaches.add(attach2);mailUtil.sendSSLEmailWithCC(CollUtil.newArrayList("13740548@qq.com"),CollUtil.newArrayList("8040824@qq.com"),"测试","<h1>邮件来自Hutool测试</h1>",CollUtil.newArrayList("timae@163.com"),attaches);}
package com.fh.hr.web.provider.util;import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.File;
import java.io.IOException;
import java.util.*;@Slf4j
@Data
@Component
//@ConfigurationProperties(prefix="mail.smtp")
//@PropertySource(value = "classpath:**/mail.properties", ignoreResourceNotFound = true)
public class MailUtil {
//    @Value("${mail.smtp.host}")private String host ="smtp.qiye.163.com";
//    @Value("${mail.smtp.port}")private String port="25";
//    @Value("${mail.smtp.SSLport}")private String SSLport="25";
//    @Value("${mail.smtp.starttlsEnable}")private String starttlsEnable="true";
//    @Value("${mail.smtp.auth}")private String auth="true";
//    @Value("${mail.smtp.connectiontimeout}")private String connectiontimeout="50000";
//    @Value("${mail.smtp.account}")/**本处的邮箱账号和下面的 nickname 是同一个 */private String account="XXXXXXXX@XXXX.com";
//    @Value("${mail.smtp.password}")/**上一行邮箱的密码 */private String password="XXXXXXXX";
//    @Value("${mail.smtp.timeout}")private String timeout="5000000";private  Vector<String> file; // 多个附件private String filename; // 附件的文件名private String nickname ="XXXXXXXX@XXXX.com";//发送者,显示的发件人名字protected static Log LOGGER = LogFactory.getLog(MailUtil.class);/***  带cc/bcc(抄送/密送)的邮件发送* @param listEmails 邮箱地址* @param cc 抄送* @param title 主题* @param content 正文* @param bcc 密送* @return* @throws Exception*/public boolean sendSSLEmailWithCC(List<String> listEmails, List<String> cc, String title, String content ,List<String> bcc,List<File> attachments) throws Exception {LOGGER.info("开始发送邮件,email==>"+listEmails+",title==>"+title);Properties props = System.getProperties();props.put("mail.smtp.host", host);// 指定协议props.put("mail.transport.protocol", "smtp");props.put("mail.smtp.port", SSLport);props.put("mail.smtp.starttls.enable", starttlsEnable);props.put("mail.smtp.auth", auth);props.put("mail.smtp.connectiontimeout", connectiontimeout);props.put("mail.smtp.timeout", timeout);props.put("mail.smtp.debug", true);Transport transport = null;Session session = Session.getDefaultInstance(props, null);transport = session.getTransport("smtp");transport.connect(host, account, password);MimeMessage msg = new MimeMessage(session);msg.setSentDate(new Date());InternetAddress fromAddress = new InternetAddress(account,nickname);msg.setFrom(fromAddress);InternetAddress[] toAddress = new InternetAddress[listEmails.size()];for(int k = 0;k<listEmails.size();k++){String emailAddress = listEmails.get(k);new InternetAddress(emailAddress);toAddress[k]=new InternetAddress(emailAddress);}log.debug("当前需要发送邮件的地址信息============>{}"+Arrays.deepToString(toAddress));msg.addRecipients(Message.RecipientType.TO, toAddress);//增加CC功能if(cc != null) {InternetAddress[] ccAddress = new InternetAddress[cc.size()];for(int k = 0;k<cc.size();k++){String emailAddress = cc.get(k);new InternetAddress(emailAddress);ccAddress[k]=new InternetAddress(emailAddress);}msg.addRecipients(Message.RecipientType.CC, ccAddress);}//增加BCC功能if(bcc != null) {InternetAddress[] bccAddress = new InternetAddress[bcc.size()];for(int k = 0;k<bcc.size();k++){String emailAddress = bcc.get(k);new InternetAddress(emailAddress);bccAddress[k]=new InternetAddress(emailAddress);}msg.addRecipients(Message.RecipientType.BCC, bccAddress);}//设置邮件主题msg.setSubject(MimeUtility.encodeText(title,MimeUtility.mimeCharset("UTF-8"), null));// 设置邮件格式msg.setContent(content, "text/html;charset=UTF-8");// 设置邮件发送日期msg.setSentDate(new Date());if (!CollectionUtils.isEmpty(attachments)) {msg = this.listFile(content, attachments, msg);}transport.sendMessage(msg, msg.getAllRecipients());log.info("邮件已发送");return true;}public MimeMessage listFile(String content, List<File> attachments, MimeMessage message) throws MessagingException, IOException {Multipart multipart = new MimeMultipart();//邮件正文BodyPart contentPart = new MimeBodyPart();contentPart.setContent(content, "text/html;charset=utf-8");multipart.addBodyPart(contentPart);//邮件附件if (attachments != null) {for (File attachment : attachments) {BodyPart attachmentPart = new MimeBodyPart();DataSource source = new FileDataSource(attachment);attachmentPart.setDataHandler(new DataHandler(source));//避免中文乱码的处理attachmentPart.setFileName(MimeUtility.encodeWord(attachment.getName()));multipart.addBodyPart(attachmentPart);}}message.setContent(multipart);//保存邮件message.saveChanges();return message;
//        Transport.send(message);}public String toChinese(String text) {try {text = MimeUtility.encodeText(new String(text.getBytes(), "GB2312"), "GB2312", "B");} catch (Exception e) {e.printStackTrace();}return text;}}

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

好了,一下是另外一种的实现方式,首先要创建一个 mail.setting 的文件,在classpath(在标准Maven项目中为src/main/resources)的config目录下新建mail.setting文件,最小配置内容如下,在此配置下,smtp服务器和用户名都将通过from参数识别:参考---参考资料

     cn.hutool.extra.mail.MailUtil.send(CollUtil.newArrayList("13740519@qq.com"),CollUtil.newArrayList("8040824@qq.com"),CollUtil.newArrayList("timagi@163.com"),"测试主题","<h1>邮件来自Hutool测试</h1>",true);
# 邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
host = smtp.qiye.163.com
# 邮件服务器的SMTP端口,可选,默认25
port = 25
# 发件人(必须正确,否则发送失败)
from = Tihui@pa.com
# 用户名,默认为发件人邮箱前缀
user = Tihui@pa.com
# 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)
pass = Lo1313

引入的依赖为

<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version>
</dependency>

带附件/密送/抄送的 javaMail 邮件发送 -- java_demo(两种实现方式)相关推荐

  1. php mail方法_php邮件发送的两种方式

    这篇文章研究的主要内容就是使用PHP来发送电子邮件,总结为以下两种方法: 一.使用PHP内置的mail()函数 $to = "test@163.com"; //收件人 $subje ...

  2. Spring boot锦集(二):整合邮件发送的四种方法 | 纯文本的邮件、带有图片的邮件、带Html的邮件、带附件的邮件(很详细)

    前言 邮件发送,听着很神秘,然而对于Spring Boot来说,这个功能已被集成好,只需引入spring-boot-starter-mail依赖后,少量代码即可实现大部分邮件发送需求. 本文以异常教程 ...

  3. JavaMail邮件发送,网页、客户端详解-JavaWeb学习6.9

    JavaMail邮件发送 JavaMail发送邮件 笔记 导入mail.jar包 eclipse编写时的目录 网页上发送邮件 采用qq邮箱和网易邮箱 代码 客户端发送邮箱 客户端采用foxmail 服 ...

  4. java邮箱设置密送_修改后可以发送附件、抄送、密送的javabean,吐血推荐~(javamail范例)...

    修改后可以发送附件.抄送.密送的javabean,吐血推荐~(javamail范例) 作者:Andy.m    文章来源:www.jspcn.net 发布日期:2004年02月16日 /* *Auth ...

  5. javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)

    先看源码,再来理解,可以直接使用! JavaMailWithAttachment.java: <span style="font-family: Arial, Helvetica, s ...

  6. java mail 抄送多用户_javaMail邮件发送功能(多收件人,多抄送人,多密送人,多附件)...

    先看源码,再来理解,可以直接使用! JavaMailWithAttachment.java: private MimeMessage message; private Session session; ...

  7. Spring的javaMail邮件发送(带附件)

    项目中经常用到邮件功能,在这里简单的做一下笔记,方便日后温习. 首先需要在配置文件jdbc.properties添加: #------------ Mail ------------ mail.smt ...

  8. 应用层之E-mail服务及javaMail邮件发送的知识总结

    关于Email服务你需要知道的知识点: 概述: 今天来介绍一下应用层的电子邮件服务,我们每天几乎都在用,电子邮件(email)服务也是一种基于C/S模式的服务,它采用的是一种"存储-转发&q ...

  9. javamail——邮件发送

    最近都在熟悉先前学习的一系列知识,感觉需要加强巩固. 最近实现了邮件发送的业务,这是我的记录. 分析 javamail是用来发送邮件的.我们在代码里操作他来实现邮件发送. 我们使用qq邮箱作为案例 设 ...

最新文章

  1. 专访阿里 iDST 语音组总监鄢志杰:智能语音交互从技术到产品,有哪些坑和细节要注意?
  2. pageHelper插件
  3. 计算机转型展望未来大发展,市计算机:披荆斩棘砥砺前行,勠力同心展望未来...
  4. Response.ContentType所有类型例举
  5. 解释afterPropertiesSet
  6. 数据模型与决策_数据模型与决策复习资料拿走不用客气
  7. php substr 去掉前n位_PHP全栈学习笔记16
  8. std::tie简单介绍
  9. python共享单车案例分析_python分析数据分析项目:共享单车租用情况影响因素探索分析...
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的驾照在线考试系统
  11. [No000004]在WIN7/8任务栏创建快捷方式
  12. 扫地机器人湿地_黑五好价 美亚直邮 iRobot Braava 380t 拖地机器人
  13. python编写递归函数和非递归函数、输出斐波那契数列_C语言编程:用递归和非递归法输出斐波那契数列...
  14. 最难忘的一节计算机课,作文:最难忘的一节课
  15. Windows 11 的“此电脑”图标在哪里?
  16. SAP Gateway与OData用法简介
  17. Intel汇编-LOOP循环检查ECX含零值
  18. (整理)吊炸天的CNNs,这是我见过最详尽的图解!(下)
  19. python最终价格_python分析北京租房现状,最后的价格分布地图亮了
  20. Angular随记:Angular CLI安装及使用

热门文章

  1. 搭建和设计框架robotframework,重点说明:(https://blog.csdn.net/nich2008/article/details/81296529)
  2. AcWing 1113. 红与黑【《信息学奥赛一本通》】【DFS】【BFS】【Flood Fill】
  3. SDUT ACM 多项式求和(基于C语言)
  4. 我见众生皆无意,唯有见你动了情(表白日记分享篇)
  5. 形象标识 新松机器人_新松机器人自动化股份有限公司
  6. 微信android自动播放视频文件,vue-player或TcPlayer在微信内自动播放video和audio
  7. Python爬虫 爬取豆瓣电影TOP250
  8. PTA 单链表分段逆转 (12 分)
  9. python处理表格数据教程_利用Python处理Excel数据
  10. PySpark:DataFrame及其常用列操作