创建Springboot项目
一. 简单邮件发送
1.在pom.xml中导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.application.yml中配置
在application中做如下配置
host处如果是qq邮箱就写smtp.qq.com
如果是126邮箱就写smtp.126.com依此类推。
记住:需要进入邮箱,点设置开启客户端的授权
spring:
mail:
host: smtp.qq.com
username: 1234567@qq.com
password: xxxxxxxxxxxxxx #授权码
3.编写接口
package cn.hxzy.sendemail.service;
public interface SendMailService {
void sendMail();
}
4.编写实现类
package cn.hxzy.sendemail.service.impl;
import cn.hxzy.sendemail.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender; //自动装配JavaMailSender对象
//发送人
private String from = "1234567@qq.com";
//接收人
private String to = "1234567@163.com";
//标题
private String subject = "Java开发测试邮件";
//正文
private String text = "Java开发测试邮件正文内容";
@Override
public void sendMail() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(text);
javaMailSender.send(message);
}
}
5.编写测试类
package cn.hxzy.sendemail;
import cn.hxzy.sendemail.service.SendMailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SendEmailApplicationTests {
@Autowired
private SendMailService javaSendMailService;
@Test
void contextLoads() {
javaSendMailService.sendMail();
}
}
二.发送复杂邮件
2.1发送图片与链接
正文内容支持html,如下:
发送链接
//正文1
private String text = "<a href='http://www.jd.com'>京东</a>";
发送图片
//正文2
private String text = "<img src='https://img10.360buyimg.com/seckillcms/s500x500_jfs/t1/48571/40/20027/27604/632d60b6Eb078e5ff/b1369f32a4334126.jpg' />";
实现类代码:
package cn.hxzy.sendemail.service.impl;
import cn.hxzy.sendemail.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.internet.MimeMessage;
@Service("service2")
public class SendMailServiceImpl2 implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
//发送人
private String from = "1234567@qq.com";
//接收人
private String to = "1234567@163.com";
//标题
private String subject = "Java开发测试邮件";
//正文
private String text = "<img src='https://img10.360buyimg.com/seckillcms/s500x500_jfs/t1/48571/40/20027/27604/632d60b6Eb078e5ff/b1369f32a4334126.jpg' />";
@Override
public void sendMail() {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
//谁发的
helper.setFrom(from+"(nclmc)");
//message.setFrom(from+"(nclmc)");nclmc将代替from
//发给谁
helper.setTo(to);
//邮件标题
helper.setSubject(subject);
//邮件内容
helper.setText(text, true);
javaMailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.2 发送附件
在上面基础上设置如下
1、创建MimeMessageHelper对象时增加true参数
2、添加附件
注意addAttachment第一个参数的后缀一定要与你原文件的后缀相同。
package cn.hxzy.sendemail.service.impl;
import cn.hxzy.sendemail.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.internet.MimeMessage;
import java.io.File;
@Service("service2")
public class SendMailServiceImpl2 implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
//发送人
private String from = "1234567@qq.com";
//接收人
private String to = "1234567@163.com";
//标题
private String subject = "Java开发测试邮件";
//正文
private String text = "<img src='https://img10.360buyimg.com/seckillcms/s500x500_jfs/t1/48571/40/20027/27604/632d60b6Eb078e5ff/b1369f32a4334126.jpg' />";
@Override
public void sendMail() {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true);
//谁发的
helper.setFrom(from+"(nclmc)");
//message.setFrom(from+"(nclmc)");nclmc将代替from
//发给谁
helper.setTo(to);
//邮件标题
helper.setSubject(subject);
//邮件内容
helper.setText(text, true);
//添加附件
File f1=new File("D:\\apache-maven-3.5.4-bin.zip");
File f2=new File("D:\\entity-1.0-SNAPSHOT.jar");
helper.addAttachment(f1.getName()+".zip",f1);
helper.addAttachment("附件名.jar",f2);
javaMailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}