今天组长有了新的需求,要求每日自动生成一份Excel,并且发送到指定账户的邮箱中,上午研究了一下发邮件,但是发现一般的发邮件代码都很麻烦,于是我就想到了一个工具,HuTool,真的很方便Hutool参考文档,话不多说,直接上代码

首先导入依赖<!-- 邮件 --><dependency><groupId>com.sun.mail</groupId><artifactId>javax.mail</artifactId><version>1.6.2</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.7.10</version></dependency>

在resources下写一个mail.setting文件,你没有看错,是.setting结尾的

注意,如果你要使用QQ邮箱,你要进入自己的QQ邮箱去设置一下,什么是授权码,它又是如何设置?_QQ邮箱帮助中心,进去以后,选择第一个POP3/SMTP服务,点击最右面的开启

# 邮件服务器的SMTP地址
host = smtp.qq.com
# 邮件服务器的SMTP的端口
port = 465
# 发件人(必须正确,否则发送失败)
from = xxxx@qq.com
# 用户名(注意:如果使用foxmail邮箱,此处user为qq号)
user = xxxx@qq.com
# 密码(拿到的授权码)
pass = xxxx
# 使用STARTTLS安全链接
startttlsEnable = true# 使用SSL安全连接
sslEnable = true
# 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字
socketFactoryClass = javax.net.ssl.SSLSocketFactory
# 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true
socketFactoryFallback = true
# 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456
socketFactoryPort = 465# SMTP超时时长,单位毫秒,缺省值不超时
timeout = 0
# Socket连接超时值,单位毫秒,缺省值不超时
connectionTimeout = 0

然后编写一个测试类

package com.unicom.resinteractive.util;import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.mail.MailUtil;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;/*** @ClassName MailTest* @Author 王弈程* @Date 2021/12/8 11:00**/
public class MailTest {public static void main(String[] args) {Calendar cal   =   Calendar.getInstance();cal.add(Calendar.DATE,   -1);String yesterday = new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime());ArrayList<String> tos = CollUtil.newArrayList("xxxx","xxxx@163.com","xxxx@tydic.com");MailUtil.send(tos,"【冬奥活动奖品发放及使用日报】-----"+ DateUtils.dateToString(new Date()),"各位领导同事好:\n" +"附件是冬奥活动奖品发放及使用"+yesterday+"(实际产生数据日期)数据,请查收。",true, FileUtil.file("E:\\aa.xls"));}
}

结果如图所示:

我在这里说一下:首先这个可以支持多人发送,意思是支持多个人接受同一个邮件,代码体现为那个tos集合,在这里写好要发送的邮箱地址,HuTool就会自动解决,并且你要发送的Excel、Word、图片等格式的文件都会以附件的形势发送, 如果只想简简单单的发送一封邮件,那么把send方把里面的最后true改为false,把那个FileUtil直接删掉即可。HuTool真的是很好用,YYDS!

使用定时器完成每日发送多个邮件(发邮件,支持多人发送)相关推荐

  1. python邮件发送哪个好_python发邮件(一)

    复习模块 如果我们要发送邮件,就需要用到smtplib模块的以下方法: 1.import smtplib       #引入smtplib模块 2.server = smtplib.SMTP()    ...

  2. SQLSERVER 数据库邮件发送以表格形式发送(存储过程内容发邮件)

    SQLSERVER 数据库邮件发送以表格形式发送 直接开始不哔哔! 一.数据库配置(以图文展现) 1.以sa或者windows身份登录数据库 2.选择数据库管理下面的数据库邮件: 3.选择数据库邮件左 ...

  3. 服务器发不了邮件,发邮件服务器-如何发邮件?为什么发不出去?服务器是什么?发邮件时,信息要服务器 爱问知识人...

    Outlook Express邮箱使用全攻略(转自云之渊论坛: ) 1.防止OE发送乱码正确的方法是: 首先,在邮件编辑窗口中,用鼠标单击菜单栏中的"格式"菜单,并从弹出的下拉菜单 ...

  4. ip-guard邮件白名单支持网页邮箱发送吗?

    目前不支持,可以支持outlook.foxmail等邮件客户端的方式发送 白名单的设置规则:

  5. Java发邮件(详解+源代码)

    Java发送邮件 一.邮件概述 (1)收发邮件 发邮件大家都会吧!发邮件是从客户端把邮件发送到邮件服务器,收邮件是把邮件服务器的邮件下载到客户端. 我们在163.126.QQ等网站注册的Email账户 ...

  6. python发邮件详解,smtplib和email模块详解

    在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...

  7. python是什么邮箱_python发邮件详解,smtplib和email模块详解

    在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理.SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目 ...

  8. 自动化测试生成HTML测试报告和自动发邮件

    一.生成HTML测试报告 1.下载HTMLTestRunner 地址:http://tungwaiyip.info/software/HTMLTestRunner.html 保存在Python\Lib ...

  9. win10 UWP 发邮件

    UWP 下如何发邮件?可以使用mailto:xx?subject=*方式发送? 本文:如何在 UWP 使用默认邮件发邮件. 打开设置,应用,默认应用,选择应用 OutLook.这样就和我的一样,如果出 ...

最新文章

  1. R语言dataframe获取每个字段(特征)的数据类型实战:使用sapply函数获取每个字段(特征)的数据类型、通过柱状图可视化特征的种类以及个数
  2. java rt maven_java – Maven无法使用rt.jar进行编译
  3. POJ 1661 Help Jimmy
  4. [MyBatisPlus]通用枚举
  5. 《Python Cookbook 3rd》笔记(2.17):在字符串中处理html和xml
  6. 一种改进的高光谱图像CEM目标检测算法
  7. Win7蓝屏代码0x000000001e怎么解决
  8. idea 调试远程tomcat
  9. 计算机专业和制药工程,制药工程本科专业介绍
  10. Openstack的用户登录流程
  11. Android模拟地图gps定位
  12. 项目:艺龙国内机票实时数据爬虫
  13. sniffer超级详细介绍
  14. WebRTC 教程二:WebRTC API 和 Leak
  15. RabbitMQ中交换机的几种模式
  16. 不重启JVM,对未添加日志的方法添加日志!
  17. c语言——常见占位符(格式说明)
  18. ui-app使用pdfh5显示pdf文件 获取pdf总页数和当前阅读页数
  19. 《公司的力量》第一集 公司!公司!
  20. 局部渐近稳定,全局渐进稳定,一致有界,一致最终有界

热门文章

  1. PHP 的输入与输出
  2. 在 PostgreSQL 中简单实现 Insert ignore 操作
  3. mysql:insert ignore、insert和replace区别
  4. 输入H.264流,输出封装格式流
  5. 【学渣无能狂怒】今天也是为了学习落泪的一天--每天一遍Java再见
  6. camera申请buf流程
  7. Vue实现简单聊天对话框案例
  8. 【红队APT】钓鱼篇Office-CVE漏洞RLO隐藏压缩包释放免杀打包捆绑
  9. 网页版php手机端怎么转wap页,用dw做的普通网页和wap网页,要怎样做才能让pc浏览器和手机浏览器自动识别并跳转呢?...
  10. 企业如何实现IoT物联网远程控制