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. C. Basketball Exercise dp

    C. Basketball Exercise time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  2. 06 MySQL运算符

    算数运算符     +    -    *    /    DIV    %    MOD   比较运算符     =    <>    !=    <=>(安全等于,NULL ...

  3. POJ 2823:Sliding Window 单调队列

    Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 48930   Accepted: 14130 ...

  4. C++ 检测物理内存以及磁盘空间

    BOOL CheckResource() { MEMORYSTATUSEX statex; statex.dwLength = sizeof (statex); GlobalMemoryStatusE ...

  5. zoj1002

    Suppose that we have a square city with straight streets. A map of a city is a square board with n r ...

  6. Elasticsearch开启试用x-pack license

    一.Elasticsearch 6.7.2开启trial  x-pack license:x-pack的license试用期只有30天 1.ES6.7.2版本默认已经安装了x-pack插件,这里就没有 ...

  7. idea 将java 项目 打包成jar包

    记录一下,防止忘记.ps : 请忽略这个是web项目 1.idea 打包jar包 (1)首先打开Project Structure,选中Artifacts (2)点击绿色加号,选中jar ,然后选中f ...

  8. java简写名词解释

    RPC(Remote Procedure Call)—远程过程调用 实时编译器(Just In Time Compiler,JIT) XML 指可扩展标记语言(EXtensible Markup La ...

  9. Python PIP包管理器

    版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ...

  10. ACM-售货员难题

    题目描述:售货员的难题  某乡有n个村庄(1< n < 20),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0 < s < 1000)是已知的,且A村到B村与B村到 ...