1.邮箱授权,获取授权码


代码展示:
pom.xml
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
MailSenderParams.java
package top.xzhand.mail;
import lombok.Data;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Description:
* @Author: xiazhong
* @Date: 2019/6/22
*/
@Data
public class MailSenderParams {
private String mailTo;//收件人
private String title;//邮件标题
private String content;//邮件内容
private List<File> attachments=new ArrayList<>();//附件
private String templateFile;//模板文件
private String template;
/**
* 模板的参数集
*/
private Map<String, Object> templateModels;
}
MailSender.java
package top.xzhand.mail;
import freemarker.template.Template;
import org.apache.log4j.Logger;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import javax.mail.MessagingException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.io.File;
import java.util.List;
import java.util.Properties;
;
/**
* @Description: 邮件发送服务
* @Author: xiazhong
* @Date: 2019/6/22
*/
public class MailSender {
private Logger logger= Logger.getLogger(this.getClass());
private JavaMailSender javaMailSender;
private FreeMarkerConfigurer freeMarkerConfigurer;
private String name;
private String from;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public Logger getLogger() {
return logger;
}
public void setLogger(Logger logger) {
this.logger = logger;
}
public JavaMailSender getJavaMailSender() {
return javaMailSender;
}
public void setJavaMailSender(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public FreeMarkerConfigurer getFreeMarkerConfigurer() {
return freeMarkerConfigurer;
}
public void setFreeMarkerConfigurer(FreeMarkerConfigurer freeMarkerConfigurer) {
this.freeMarkerConfigurer = freeMarkerConfigurer;
}
public MailSender(){
logger.info("初始化邮件组件");
}
/**
* 发送邮件
*/
public void sendSimpleMail(MailSenderParams params){
MimeMessage message=null;
try{
message=javaMailSender.createMimeMessage();
MimeMessageHelper helper=new MimeMessageHelper(message,true);
helper.setFrom(new InternetAddress(this.getFrom() ,MimeUtility.encodeText(this.name,"UTF-8","B")));
helper.setTo(params.getMailTo());
helper.setSubject(params.getTitle());
helper.setText(params.getContent(), false);
}catch (Exception e){
throw new RuntimeException("发送邮件异常! from: " + name+ "! to: " + params.getMailTo());
}
javaMailSender.send(message);
}
public void sendHtmlMail(MailSenderParams params){
MimeMessage message=null;
try{
message=javaMailSender.createMimeMessage();
MimeMessageHelper helper=new MimeMessageHelper(message,true);
//helper.setFrom(new InternetAddress(this.getFrom() ,MimeUtility.encodeText(this.name,"UTF-8","B")));
helper.setTo(params.getMailTo());
helper.setSubject(params.getTitle());
helper.setText(params.getContent(), true);
}catch (Exception e){
throw new RuntimeException("发送邮件异常! from: " + name+ "! to: " + params.getMailTo());
}
javaMailSender.send(message);
}
/**
* 发送带附件的邮件
* @param params
*/
public void sendAttachmentMail(MailSenderParams params){
MimeMessage message=null;
try{
message=javaMailSender.createMimeMessage();
MimeMessageHelper helper=new MimeMessageHelper(message,true);
helper.setFrom(new InternetAddress(this.getFrom() ,MimeUtility.encodeText(this.name,"UTF-8","B")));
helper.setTo(params.getMailTo());
helper.setSubject(params.getTitle());
helper.setText(params.getContent(), true);
}catch (Exception e){
throw new RuntimeException("发送邮件异常! from: " + name+ "! to: " + params.getMailTo());
}
javaMailSender.send(message);
}
/**
* 发送模板邮件
*/
public void sendTemplateMail(MailSenderParams params) {
MimeMessage message = null;
try {
message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(new InternetAddress(this.getFrom(), MimeUtility.encodeText(this.name,"UTF-8", "B")));
helper.setTo(params.getMailTo());
helper.setSubject(params.getTitle());
this.addAttachment(helper,params);
Template template = freeMarkerConfigurer.getConfiguration().getTemplate(params.getTemplateFile());
String html = FreeMarkerTemplateUtils.processTemplateIntoString(template, params.getTemplateModels());
helper.setText(html, true);
} catch (Exception e) {
throw new RuntimeException("发送邮件异常! from: " + name + "! to: " + params.getMailTo());
}
javaMailSender.send(message);
}
/**
* 添加附件
* @param helper
* @param params
* @throws MessagingException
*/
private void addAttachment(MimeMessageHelper helper, MailSenderParams params) throws MessagingException {
if(params.getAttachments() != null){
List<File> attachments = params.getAttachments();
for (File file:attachments){
FileSystemResource attachment = new FileSystemResource(file);
helper.addAttachment(file.getName(), file);
}
}
}
// public static void main(String[] args) {
//
// JavaMailSenderImpl js=new JavaMailSenderImpl();
// js.setHost("smtp.qq.com");
// js.setUsername("75284350@qq.com");
// js.setPassword("*****");
// Properties props = new Properties();
// props.put("mail.smtp.auth", true);
// props.put("mail.smtp.ssl.enable", true);
// props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
// props.put("mail.smtp.timeout", 25000);
// js.setJavaMailProperties(props);
// MimeMessage message = null;
// try {
// message = js.createMimeMessage();
// MimeMessageHelper helper = new MimeMessageHelper(message, true);
// // helper.setFrom(new InternetAddress(this.getFrom(), MimeUtility.encodeText(this.name,"UTF-8", "B")));
// helper.setFrom("75284350@qq.com");
// helper.setTo("98781255@qq.com");
// helper.setSubject("测试");
// helper.setText("测试内容");
// //addAttachmentStatic(helper,params);
// } catch (Exception e) {
// e.printStackTrace();
// }
// js.send(message);
// }
}
MailTest.java
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import top.xzhand.mail.MailSender;
import top.xzhand.mail.MailSenderParams;
public class MailTest {
public static void main(String[] args) {
MailSender mailSender=new MailSender();
JavaMailSenderImpl js=new JavaMailSenderImpl();
js.setHost("smtp.qq.com");
js.setUsername("7528435@qq.com");
js.setPassword("****");
mailSender.setJavaMailSender(js);
mailSender.setFrom("7528435@qq.com");
mailSender.setName("7528435");
MailSenderParams params=new MailSenderParams();
params.setMailTo("9878125@qq.com");
params.setTitle("测试邮件");
params.setContent("测试邮件发送");
mailSender.sendSimpleMail(params);
}
}
原文:https://www.cnblogs.com/notmore/p/12658986.html