使用Spring Email发送邮件

131 阅读1分钟

一、邮箱设置

邮箱开启SMTP服务。常见的邮箱都可以



二、导入jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    <version>2.1.5.RELEASE</version>
</dependency>


三、邮箱参数配置

邮箱参数配置

spring.mail.host=smtp.sina.com    # 因邮箱类型而已
spring.mail.port=465
spring.mail.username= # your email
spring.mail.password= # your email password
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.ssl.enable=true


四、使用 JavaMailSender 发送邮件

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 javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

public class MailClient {

    @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());
        } catch (MessagingException e) {
            System.out.println("发送邮件失败");
        }
    }
}

单元测试

public class MailTests {

    private MailClient mailClient;

    public void testTextMail() {
        mailClient.sendMail("自己的邮箱", "邮件主题", "邮件内容");
    }
}


www.nowcoder.com/study/live/…