文本发送
1. 首先POM文件中要添加的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>2.0.2-beta</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.8.16</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>1.8.16</version>
<scope>test</scope>
</dependency>
2. 在配置文件 application中添加邮件发送的详细信息:
- host中文意思就是“简单邮件传送协议服务器”,我使用的是qq邮箱smtp,根据不同的邮箱进行修改
- username是发件人邮箱
- password这里不是指你的邮箱密码,而是邮箱的授权码,可以去邮箱账户页面去获取授权码
# 设置邮件发送的详细信息
spring:
mail:
host: smtp.qq.com
username: 123456@qq.com
password: imzpwzupyamghhfa
default-encoding: UTF-8
3. 去写一个service的方法,参数注释在里面已经写清楚了。
package com.dapeng.nb.service;
import org.springframework.beans.factory.annotation.Value;
public interface MailService {
/**
* 测试邮件发送
*/
/**
*
* @param to 接收人
* @param subject 主题
* @param content 内容
*/
public void sendSimpleMail(String to,String subject,String content);
}
4. 实现里面 from便是我们在application里面定义的发件人邮箱
package com.dapeng.nb.service.impl;
import com.dapeng.nb.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class MailServiceImpl implements MailService {
@Value("${spring.mail.username}")
private String from;
@Autowired
private JavaMailSender mailSender;
@Override
public void sendSimpleMail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);//接收人
message.setSubject(subject);
message.setText(content);
message.setFrom(from);//发送人
mailSender.send(message);
}
}
5.新建一个测试类,运行该测试方法,去查看接受邮箱是否有新的邮件
启动如果报503的话,便是你的授权码写错了!
package com.dapeng.nb;
import com.dapeng.nb.service.MailService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@RunWith(SpringRunner.class)
@SpringBootTest
public class MailTest {
@Resource
MailService mailService;
@Test
public void sendSimpleMailTest(){
String to = "654321@qq.com";
String subject = "测试邮件";
String text = "123";
mailService.sendSimpleMail(to,subject,text);
}
}