步骤:
// 1、进入QQ邮箱开启STMP/POP3 // 2、使用springboot提供的邮件功能接口JavaMailSender和MimeMessageHelper // 测试发送十封信
项目结构:
步骤:
1、登录QQ邮箱打开-设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
点击开启POP3/SMTP服务。新开通的QQ邮箱要14天才能使用这个功能。
点击开启,会提醒使用QQ号绑定的手机发送一个短信,然后会获取一串数字。这串数字需要记住,等同于登录邮箱的密码。
2、创建springboot项目,完整代码
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo-eamil</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo-eamil</name>
<description>demo-eamil</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</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>
</dependency>
<!--邮件依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
启动类
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoEamilApplication {
public static void main(String[] args) {
SpringApplication.run(DemoEamilApplication.class, args);
}
}
application.yml
spring:
mail:
host: smtp.qq.com
port: 25
username: XXX@qq.com
password: XXX
default-encoding: UTF-8
#username是发件人的邮箱地址
#password就是QQ邮箱设置中开启服务后得到的那串数字
SendJunkMailService.java
package com.example.util;
import javax.mail.MessagingException;
import java.util.List;
public interface SendJunkMailService {
void send(String s) throws MessagingException;
}
SendJunkMailServiceImpl.java
package com.example.util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
@Slf4j
@Service
public class SendJunkMailServiceImpl implements SendJunkMailService {
@Autowired
JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
@Override
public void send(String s) {
System.out.println("发送者" + from);
try {
MimeMessage mimeMessage = this.mailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setSubject("springboot mail"); //邮件标题
mimeMessageHelper.setTo("XXXX@qq.com"); //收件人邮箱地址
mimeMessageHelper.setText("扬州慢·淮左名都\n" +
"姜夔 〔宋代〕\n" +
"\n" +
"淳熙丙申至日,予过维扬。夜雪初霁,荠麦弥望。入其城,则四顾萧条,寒水自碧,暮色渐起,戍角悲吟。予怀怆然,感慨今昔,因自度此曲。千岩老人以为有《黍离》之悲也。\n" +
"\n" +
"淮左名都,竹西佳处,解鞍少驻初程。过春风十里,尽荠麦青青。自胡马窥江去后,废池乔木,犹厌言兵。渐黄昏,清角吹寒,都在空城。\n" +
"杜郎俊赏,算而今重到须惊。纵豆蔻词工,青楼梦好,难赋深情。二十四桥仍在,波心荡,冷月无声。念桥边红药,年年知为谁生?\n" + s);
this.mailSender.send(mimeMessage);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
测试类MailTest
package com.example.util;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.mail.MessagingException;
@SpringBootTest
public class MailTest {
@Autowired
SendJunkMailService sendJunkMailService;
// 1、进入QQ邮箱开启STMP/POP3
// 2、使用springboot提供的邮件功能接口JavaMailSender和MimeMessageHelper
// 测试发送十封信
@Test
public void t() {
try {
for (int i = 0; i < 10; i++) {
sendJunkMailService.send(String.valueOf(i));
}
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
====================
成功