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. java关键字“static”

    Java中static使用方法 1.static静态变量 静态变量:每个类只有一个,所有实例共享: 实例变量:每个实例只有一个: package test2; import java.lang.Str ...

  2. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-backward

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...

  3. H5页面,华为手机打开不加载JS的问题

    今天在做H5页面放在其他手机上面都可以刷出列表,但是就是放在华为手机上面刷不出来,怎么想都想不通,后面主管说华为手机的浏览器是严格遵守H5什么鬼东西的,然后其他浏览器做到比较好的,如果有报错就帮我们解 ...

  4. 一道算法题加深我对C++中map函数的理解

    一.一道题目引发我对map函数的考量 首先是题目大意:有n个银行,a[i]表示这个人在第i个银行有a[i]块钱(可以是负数),所有银行的钱加起来正好是0.每次只能在相邻的银行之间转账,问最少要转多少次 ...

  5. 2.7 学习总结 之【Android】java To Kotlin 一(初识)

    一.Kotlin 的方便之处 1.Kotlin 可以直接使用id来呼叫操控相应的控件( textView.text = "0" )   java( TextView textVie ...

  6. Jenkins实现自动打包,MAVEN打包,Shell脚本启动

    1.点击New任务 2.创建任务,输入项目名 3.输入描述等 4.选择Git或SVN 5.自动,定时打包 6.在Build下配置

  7. lvm 通过扩容本身磁盘容量扩容

    场景:sdb之前是3G容量,现在扩容了sdb的容量到8G.现在把新扩容的5G容量扩展到现有的逻辑卷中 [root@localhost ~]# pvresize /dev/sdb  Physical v ...

  8. idea开发springboot 的mysql数据库连接问题

    今天在家用idea进行springboot开发,前面一些坑相对避免了,但是到数据库这块总是连接不上,报错主要是: Access denied for user 'root'@'localhost' ( ...

  9. JS - if(flag) if(!flag)

    1,    if(flag)   判断是否为 true 2,    if(!flag)  判断是否为false

  10. 四十六、SAP的Message中E和W区别

    一.如果写的是E,则报红色的信息,如图 效果如下 二.如果是写的是W,则报黄色的信息 效果如下