在Spring Boot中发送邮件,需要使用Spring提供的org.springframework.mail.javamail.JavaMailSender,它提供了许多简易的用法,可以发送简单邮件,HTML格式邮件,带附件的邮件及模板邮件。
创建Spring Boot工程
添加依赖: spring-boot-starter-mail
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 复制代码
在application.yml配置文件中添加邮件相关配置(以163邮箱为例)
spring:
## 邮件配置
mail:
host: smtp.163.com
username: 邮箱
password: 邮箱授权密码
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
复制代码
使用Spring Boot发送简单邮件
@Service(value = "jmsService")
public class JmsService {
@Autowired
private JavaMailSender jms;
public void sendSimpleMail(String sender, String receiver, String subject, String text) {
try {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(sender); // 发送者
message.setTo(receiver); // 接受者
message.setSubject(subject); // 邮件主题
message.setText(text); // 邮件正文
jms.send(message);
} catch (Exception exception) {
// TODO 异常处理
}
}
}
复制代码
使用Spring Boot发送HTML格式邮件
@Service(value = "jmsService")
public class JmsService {
@Autowired
private JavaMailSender jms;
public void sendHtmlMail(String sender, String receiver, String subject, String htmlText) {
MimeMessage message = null;
try {
message = jms.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender); // 发送者
helper.setTo(receiver); // 接受者
helper.setSubject(subject); // 邮件主题
if (StringUtil.isNotEmpty(htmlText)) {
StringBuffer sb = new StringBuffer(htmlText);
helper.setText(sb.toString(), true); // HTML
}
jms.send(message);
} catch (Exception exception) {
// TODO 异常处理
}
}
}
复制代码
使用Spring Boot发送带附件的邮件
@Service(value = "jmsService")
public class JmsService {
@Autowired
private JavaMailSender jms;
public void sendSimpleMailWithAttachment(String sender, String receiver, String subject, String filePath) {
MimeMessage message = null;
try {
message = jms.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender); // 发送者
helper.setTo(receiver); // 接受者
helper.setSubject(subject); // 邮件主题
helper.setText("详情参见附件内容!"); // 邮件正文
File file = new File(filePath);
FileSystemResource fileResource = new FileSystemResource(file);
helper.addAttachment(file.getName(), fileResource); // 附件
jms.send(message);
} catch (Exception exception) {
// TODO 异常处理
}
}
}
复制代码
使用Spring Boot发送模板邮件,以thymeleaf为例
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 复制代码
spring:
## thymelea模板配置
thymeleaf:
#thymeleaf 所在路径
prefix: classpath:/templates/
#thymeleaf 后缀
suffix: .html
#thymeleaf 采用的标准
mode: HTML5
#thymeleaf 编码格式
encoding: UTF-8
复制代码
在项目resources/templates目录下新建邮件模板template.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>注册码</title>
</head>
<body>
您好,您的注册码为<span th:text="${code}"></span>,请在5分钟内使用完成操作。
</body>
</html>
复制代码
@Service(value = "jmsService")
public class JmsService {
@Autowired
private JavaMailSender jms;
@Autowired
private TemplateEngine templateEngine;
public void sendTemplateEmail(String sender, String receiver, String subject, String code) {
MimeMessage message = null;
try {
message = jms.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(sender); // 发送者
helper.setTo(receiver); // 接受者
helper.setSubject(subject); // 邮件主题
Context context = new Context();
context.setVariable("code", code); // 模板邮件参数
String template = templateEngine.process("template", context);
helper.setText(template, true);
jms.send(message);
} catch (Exception exception) {
// TODO 异常处理
}
}
}
链接:https://juejin.im/post/6876818580286603278
来源:掘金
天编辑了一套邮件内容,准备发送给潜在用户,传统的发送文档的形式都看腻了,所以就编辑了网页格式,看起来效果还不错,分享一下。
下面是准备好的文字内容。
数据优化、携手并进、共创财富
满足客户需求,信守服务承诺
1、针对每家媒体的要求,按实际情况制定不同的优化解决方案;
2、系统会根据市场需求不断升级,满足客户所需要功能与效果;
3、我们24小时在线值守,响应较快,能做到实时处理各种状况;
4、关于客户的信息,我们也严格做到保密,这是行业操守;
5、效果和真实访客的效果一样,可以为媒体网站节省成本;
6、直接与操作员对接,省心、省力、省时、省事。
升级日志、系统功能、技术突破
实力技术团队,系统升级成果;
*:预置任务代码,按时准时执行;
*:每日真人真机独立IP点击达到5万数据测试;
*:每日真人真机独立UV访客达到65万数据测试;
*:每日真人真机曝光PV数据达到235万以上;
*:同步激活曝光监测代码和点击监测代码;
*:点击数据可以播放页面视频10条以内;
*:点击数据可以设置流量时间段、IP所在地域;
*:兼容HTML5响应式页面,JS、Iframe框架代码;
*:开启访问弹窗,最多可以设置5个链接页面;
*:设定流量来源地址、停留时间、多次深度跳转;
*:可以激活任何第三方国内外监测系统,跳出率低;
*:支持动态监测,按顺序执行,避免IP重复;
*:支持API、SDK、APK、APP、IPA、JAR数据测试*:自定义流量设备系统来源:
Android
iPhone
iPad
Windows Phone
BlackBerry
Amazon Kindle
微信内置浏览器
手机QQ内置浏览器
手机QQ空内置浏览器
Trident内核浏览器(IE浏览器)
Tnident内核浏览器(IE浏览器)
WebKit内核浏览器(谷歌、苹果浏览器、Microsoft Edge)
Gecko内核浏览器(火狐浏览器)
双核核浏览器(360、搜狗、猎豹、傲游)
在发送邮件的时候选择-格式-编辑HTML源码
预览的效果是这个样子的,直接在邮件的内容里面可以看到的内容。
这效果,是不是很帅?
TML5 文件上传下载的实例代码,WEBUPLOADER之大文件分段上传、断点续传,HTML DOM INPUT FILE 大文件上传源代码,B/S大附件上传,支持断点续传,VUE处理文件流实现上传下载,VUE 上传大型文件插件(VUE上传视频插件)
之前在网上也搜索过相关的资料,在论坛里面也与网络交流过,但是给出的方案都不太令人满意。一方面论坛里面的网页都没有真实的项目经验。几乎大部分的网页都是在纸上谈兵,很多问题完全是凭想象在回答。也不能够提供真实案例,基本上都没有项目的实战经验。
甚至有些学生也在里面不知道从哪里复制的一些代码然后粘贴在上面。
后端PHP5,PHP6,PHP7,PHP8,ThinkPHP,
服务器支持Linux,Windows,macOS,CentOS,中标麒麟,银河麒麟,统信,龙芯,华为鲲鹏,
数据库支持MySQL,达梦数据库,人大金仓
需要提供前端源码,后端源码,控件源码
需要提供7*24小时技术支持,长期技术支持,长期维护服务
需要提供手机,QQ,微信,企业微信,电子邮箱等联系方式
需要支持包含IE在内的全部浏览器
终端需要支持Windows,macOS,Linux,信创国产化环境,中标麒麟,银河麒麟,统信UOS,龙芯,华为
功能需要支持10G,50G,100G大文件上传和断点续传,刷新续传,重启续传
文件夹包含1W,10W,100W个文件和层级结构
支持超大文件分片,分段,分块,分割上传下载,断点续传
支持文件夹上传,下载断点续传,支持文件夹层级结构,层级结构信息保存到数据库,下载的时候同样保留层级结构
支持加密上传,下载加密,端到端加密,国密SM4加密算法,数据加密传输,传输过程中要保证数据是加密的。1.下载示例
https://gitee.com/xproer/up6-vue-cli
将up6组件复制到项目中
示例中已经包含此目录
1.引入up6组件
2.配置接口地址
接口地址分别对应:文件初始化,文件数据上传,文件进度,文件上传完毕,文件删除,文件夹初始化,文件夹删除,文件列表
参考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de
3.处理事件
启动测试
启动成功
效果
数据库
源码工程文档:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra
源码报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl
OEM版报价单:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a
控件源码下载:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
*请认真填写需求信息,我们会在24小时内与您取得联系。