前几天利用HuTool写了一个发邮件的demo,我自己直接封装了一个发邮件的工具类,方便以后找不到直接粘贴使用,话不多说,直接上代码,首先需要写一个实体类:
package com.unicom.resinteractive.api.bo;
import lombok.Data;
import java.io.File;
import java.util.List;
@Data
public class SendEmailBO {
private List toUsers;
private String toTitle;
private String toContent;
private File[] file;
private String[] filePath;
}
接下来是发邮件工具类:
package com.unicom.resinteractive.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.mail.MailUtil;
import com.unicom.resinteractive.api.bo.SendEmailBO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
@Slf4j
@Component
public class SendEmailUtils {
public void SendEmail(SendEmailBO sendEmailBO){
if (CollUtil.isEmpty(sendEmailBO.getToUsers())){
log.info("sendEmailBO的toUsers属性为空!!!!!");
return;
}
if (StringUtils.isEmpty(sendEmailBO.getToTitle())){
log.info("sendEmailBO的toTitle属性为空");
return;
}
if (StringUtils.isEmpty(sendEmailBO.getToContent())){
log.info("sendEmailBO的toContent属性为空");
return;
}
if (sendEmailBO.getFile() != null){
MailUtil.send(sendEmailBO.getToUsers(),
sendEmailBO.getToTitle(),
sendEmailBO.getToContent(),
true,sendEmailBO.getFile());
return;
}
if (sendEmailBO.getFilePath() != null){
File[] files = new File[sendEmailBO.getFilePath().length];
for (int i = 0; i < sendEmailBO.getFilePath().length; i++) {
files[i]=FileUtil.file(sendEmailBO.getFilePath()[i]);
}
MailUtil.send(sendEmailBO.getToUsers(),
sendEmailBO.getToTitle(),
sendEmailBO.getToContent(),
true,files);
return;
}
MailUtil.send(sendEmailBO.getToUsers(),
sendEmailBO.getToTitle(),
sendEmailBO.getToContent(),
false);
}
}
使用的时候直接使用@Autowired直接注入即可
@Autowired
private SendEmailUtils sendEmailUtils;
这个需要的Maven依赖如下:
org.springframework.boot
spring-boot-starter-mail
com.sun.mail
javax.mail
1.6.2
cn.hutool
hutool-all
5.7.10
还需要写一个配置文件,这个配置文件,不知道的大家可以翻一下我的上一篇博客。



