1. Add dependencies
pom.xml
<!-- 集成邮件发送功能 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2. Add configuration
spring: mail: host: smtp.126.com port: 25 username: 邮箱帐号 password: 密码protocol: smtp defaultEncoding: UTF-8 properties: mail: smtp: auth: true starttls: enable: true required: true
Note: The password configured for some mailboxes is an authorization code, not the password for logging in to the mailbox. Please refer to the specific instructions set in the mailbox to configure
3. Add send mail module
MailComponent.java
package com.example.springboot.component; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.mail.internet.MimeMessage; @Component public class MailComponent { @Autowired JavaMailSender mailSender; private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Async public void sendEmail(String from, String to, String subject, String content) { try { final MimeMessage mimeMessage = this.mailSender.createMimeMessage(); final MimeMessageHelper message = new MimeMessageHelper(mimeMessage); message.setFrom(from); message.setTo(to); message.setSubject(subject); message.setText(content); this.mailSender.send(mimeMessage); logger.info("send email success"); } catch (Exception ex) { logger.error(ex.getMessage()); } } }
Fourth, write the controller method for sending mail
@GetMapping("/send") public ReturnMsg sendEmail() { String from = "123"; String to = "[email protected]"; String subject = "测试邮件"; String content = "测试内容"; mailComponent.sendEmail(from, to, subject, content); return new ReturnMsg(); }
访问地址:http://127.0.0.1:8000/send 即可查看到发送的邮件