在新浪邮箱打开 SMTP 服务。
引入 spring-boot-starter-mail
依赖。
<!-- 发邮件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.1.5.RELEASE</version>
</dependency>
在配置文件配置主机、端口、发送邮箱、授权码等。
用户名就是注册的邮箱,秘密是授权码。
创建 MailClient 类,调用 JavaMailSender 发送邮件。
@Component
public class MailClient {
private static final Logger logger = LoggerFactory.getLogger(MailClient.class);
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
public void sendMail(String to,String subject,String content){
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
// 设置发件人、设置收件人、主题、内容
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content,true);
mailSender.send(helper.getMimeMessage());
System.out.println(from);
System.out.println(to);
} catch (MessagingException e) {
logger.error("发送邮件失败:" + e.getMessage());
}
}
}
测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class MailTests {
@Autowired
private MailClient mailClient;
@Test
public void send(){
mailClient.sendMail("xxx@sina.com","test","test");
}
}
我测试的时候,需要发送到另一个新浪邮箱才能成功。
ps.其他邮箱也可以,在垃圾箱里