1. 添加依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2. impl

 public String sendWord() {
User user1 = new User();
user1.setId("1");
user1.setUsername("李四");
user1.setSex("男");
User user2 = new User();
user2.setId("2");
user2.setUsername("小王");
user2.setSex("女");
User user3 = new User();
user3.setId("3");
user3.setUsername("张三");
user3.setSex("男");
List<User> list = new ArrayList<>();
list.add(user1);
list.add(user2);
list.add(user3);
try {
Workbook wb = new SXSSFWorkbook(500);
CellStyle style = wb.createCellStyle();
Sheet sheet = wb.createSheet();
sheet.setColumnWidth(0, 6200);
sheet.setColumnWidth(1, 3800);
sheet.setColumnWidth(2, 6200);
for (int i = 3; i <= 11; i++) {
sheet.setColumnWidth(i, 3766); }
Row row = sheet.createRow(0);
row.setRowStyle(style);
Cell cell0 = row.createCell(0);
cell0.setCellStyle(style);
cell0.setCellValue("id"); Cell cell1 = row.createCell(1);
cell1.setCellStyle(style);
cell1.setCellValue("姓名"); Cell cell2 = row.createCell(2);
cell2.setCellStyle(style);
cell2.setCellValue("性别");
int rownum = 1;
CellStyle cellStyle = wb.createCellStyle();
for (User user : list) {
Row r = sheet.createRow(rownum);
r.createCell(0);
Cell c0 = r.createCell(0);
c0.setCellStyle(cellStyle);
c0.setCellValue(user.getId());
Cell c1 = r.createCell(1);
c1.setCellStyle(cellStyle);
c1.setCellValue(user.getUsername());
Cell c2 = r.createCell(2);
c2.setCellStyle(cellStyle);
c2.setCellValue(user.getSex());
rownum++;
}
// wb.write(out);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
wb.write(baos);
baos.flush();
byte[] bt = baos.toByteArray();
InputStream is = new ByteArrayInputStream(bt, 0, bt.length);
baos.close();
String email = "接收人的@qq.com";
sendMail("保险产品审核推送表", email, "邮件正文", is);
return "success";
} catch (Exception e) {
e.printStackTrace();
}
return "error";
} /**
*
* @param subject 邮件的主题
* @param toMail 接收人的邮箱
* @param content 邮件的正文
* @param is 发送的附件为流内容
* @return
*/
public static boolean sendMail(String subject, String toMail, String content, InputStream is) {
boolean isFlag = false;
try {
String smtpFromMail = "xxxx@163.com.cn"; //账号
String pwd = "password"; //密码
int port = 25; //端口
String host = "smtp.163.com"; //邮件服务器地址 Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
session.setDebug(false); MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(smtpFromMail, "发件人的名称"));
/*批量发送*/
// InternetAddress[] adc = {new InternetAddress("1067584215@qq.com"), new InternetAddress("1436495697@qq.com")};
// message.addRecipients(Message.RecipientType.TO, adc);
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toMail));
message.setSubject(subject);
message.addHeader("charset", "UTF-8"); /*添加正文内容*/
Multipart multipart = new MimeMultipart();
BodyPart contentPart = new MimeBodyPart();
contentPart.setText(content); contentPart.setHeader("Content-Type", "text/html; charset=UTF-8");
multipart.addBodyPart(contentPart); /*添加附件*/
MimeBodyPart fileBody = new MimeBodyPart();
DataSource source = new ByteArrayDataSource(is, "application/msexcel");
fileBody.setDataHandler(new DataHandler(source));
String fileName = "附件.xlsx";
// 中文乱码问题
fileBody.setFileName(MimeUtility.encodeText(fileName));
multipart.addBodyPart(fileBody); message.setContent(multipart);
message.setSentDate(new Date());
message.saveChanges();
Transport transport = session.getTransport("smtp"); transport.connect(host, port, smtpFromMail, pwd);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
isFlag = true;
} catch (Exception e) {
e.printStackTrace();
isFlag = false;
}
} catch (Exception e) {
e.printStackTrace();
}
return isFlag;
}

3. yml配置

server:
port: 8081
spring:
mail:
host: smtp.163.com
username: xxx@163.com
password: password
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true

springBoot中的邮件发送的更多相关文章

  1. Springboot+Javamail实现邮件发送

    Springboot+Javamail实现邮件发送 使用的是spring-context-support-5.2.6.RELEASE.jar里的javamail javamail 官方文档:javam ...

  2. 用ASP.NET Core 1.0中实现邮件发送功能

    准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit 好东西一定要试 ...

  3. Linux中Postfix邮件发送配置(三)

    部署DNS服务器 postfix根据域名和地址做一个MX记录,A记录,PTR记录(一般在互联网上邮件服务器都要反解,没有PTR记录会认为是垃圾邮件) $ service iptables stop $ ...

  4. SpringBoot实现QQ邮件发送

    建项目 创建一个SpringBoot项目 改pom,导入相关依赖 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE & ...

  5. 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇

    在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...

  6. Linux中的邮件发送

    这里写出两种常用的邮件发送方式: mail: 需要安装sendmail和postfix两个服务 编辑/etc/mail.rc,在最后添加 set from=scottcho@126.com smtp= ...

  7. springboot下实现邮件发送功能

    springboot给我们封装好了邮件功能,非常简单,只需要稍微配置下就ok. 引入jar <dependency> <groupId>org.springframework. ...

  8. 使用Springboot Email实现邮件发送

    在springboot配置文件增加emai配置(此种方式不支持QQ邮箱): spring.datasource.type=com.alibaba.druid.pool.DruidDataSource ...

  9. C#--中实现邮件发送

    MailMessage mailmessage = new MailMessage(); mailmessage.To.Add("接受邮箱");//可以添加多个接收邮箱 mailm ...

随机推荐

  1. 验证码取不到$_SESSION['code']的值,无法进行验证码正误验证问题

    关键还是session启动问题.解释如下: //A.php session_start();//打开session 在每个页面使用Session前都需要先session_start $_SESSION ...

  2. 03.Delphi通过接口实现多重继承的优化

    在上一篇02中,写到的sayhello函数,需要使用2个接口参数,很繁琐.可以使用as参数,把多重继承的子类对象变成需要的对象 uSayHello代码如下 unit uSayHello; interf ...

  3. 格雷码(Grey Code)生成规则

    (1) Grey码在FPGA实际应用中是实用的码,在8421BCD码累加计数器中,如果寄存器需要发生多位(两位或者以上)的跳变,会出现中间态,这样作为组合逻辑的输入是不稳妥的. 下面看两个中间态的例子 ...

  4. MyBatis 逆向工程(MyBatis 自动生成接口以及xml)的使用

    刚学MyBatis逆向工程(还以为要反汇编呢.....) MyBatis逆向工程 个人理解就是链接数据库自动生成相关的增删改查相关的类 以及xml文件 (其中有一些不足 应该就是多表链接的问题需要自己 ...

  5. 【学CG系列】web之审查元素

    一.审查元素的作用 审查元素(你的F12)可以做到定位网页元素.实时监控网页元素属性变化的功能,可以及时调试.修改.定位.追踪检查.查看嵌套 ,修改样式和查看js动态输出信息,是开发人员得心应手的好工 ...

  6. ROM与RAM

    今天小姐姐来问我关于ROM.RAM和Flash的区别,我给她大致的说了一下名称和作用.可人家说她知道这玩意的名字,希望我能够接地气的解释一下什么是ROM.RAM.FLASH…… 这就把我难住了 ≧ ﹏ ...

  7. Java8集合框架——LinkedHashMap源码分析

    本文的结构如下: 一.LinkedHashMap 的 Javadoc 文档注释和简要说明 二.LinkedHashMap 的内部实现:一些扩展属性和构造函数 三.LinkedHashMap 的 put ...

  8. Flink笔记(二) DataStream Operator(数据流操作)

    DataStream Source 基于文件 readTextFile(path) 读取 text 文件的数据 readFile(fileInputFormat, path) 通过自定义的读取方式, ...

  9. Python MongoDB 创建集合

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  10. vue 中 {{}} 和 v-text 和 v-html 区别

    data: { message:'<h3>我是一只小小小小鸟!</h3>' }, <div class="" >{{message}}</ ...