使用
spring boot
快速開發發送郵件功能
準備工作
pom.xml
文件依賴如下
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- 郵件依賴 start -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!-- 郵件依賴 end -->
</dependencies>
application.properties
配置文件如下
spring.application.name=spring-boot-mail
# Spring Boot 整合Mail配置
spring.mail.host=smtp.qq.com
[email protected]
# qq郵箱授權碼
spring.mail.password=xxxxxx
spring.mail.default-encoding=UTF-8
# 郵件發送相關配置
[email protected]
[email protected]
MailService
代碼如下
@Slf4j
@Service
public class MailService {
@Autowired
private JavaMailSender javaMailSender;
@Value("${mail.address.from}")
private String from;
public void sendSimpleMail(String[] to, String subject, String text) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setSubject(subject);
simpleMailMessage.setText(text);
simpleMailMessage.setSentDate(new Date());
simpleMailMessage.setTo(to);
simpleMailMessage.setFrom(from);
log.info("發送普通郵件,參數:{}", JSON.toJSONString(simpleMailMessage));
javaMailSender.send(simpleMailMessage);
}
}
Application
啓動類代碼如下
@SpringBootApplication
public class Application {
public static void main(String[] args) {
// 啓動
SpringApplication.run(Application.class, args);
}
}
MailServiceTest
測試類代碼如下
@RunWith(SpringRunner.class)
@SpringBootTest
public class MailServiceTest {
@Autowired
private MailService mailService;
@Value("${mail.address.to}")
private String to;
@Test
public void testSendSimpleMail() {
String[] tos = to.split(",");
mailService.sendSimpleMail(tos, "主題-測試", "內容-測試");
}
}
說明
- 配置中
spring.mail.password
爲授權碼,本示例使用QQ郵箱,需要自行去申請授權碼 - 只要依賴
spring-boot-starter-mail
,可以直接使用JavaMailSender
實例(因爲Spring Boot
自動配置)
本文完。