SpringBoot 之集成邮件服务.

 

一、前言

    Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮件发送的功能。

    Spring 自带了一个 MailSender 的实现 JavaMailSenderImpl,它会使用 JavaMail API 来发送 Email。Spring 或 SpringBoot 应用在发送 Email 之前,我们必须要 JavaMailSenderImpl 装配为 Spring应用上下文的一个 bean。

<dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-mail</artifactId></dependency>
复制代码

    2、application.yml

复制代码
spring:   mail:     host: smtp.163.com     port: 25     username: 159****2662@163.com     password: ***********
复制代码

    host 属性默认是 JavaMail 会话的主机;port 端口默认监听标准的 SMTP 端口25;如果邮件服务器需要认证的,还需要设置 userrname 和 password。

    这里我用的是 163 的邮件服务器,需要在 163 邮箱中开启客户端授权密码,否则会报 550 认证错误。

    

    3、EmailConfig.java

    在这里,我们把 JavaMailSenderImpl 装配为 Spring 应用上下文的一个 Bean。同时需要注意的是,这里使用了@ConfigurationProperties 注解,该注解需要属性有 setter 方法并在启动类中使用 @EnableConfigurationProperties 注解使之生效。

复制代码
@Configuration @ConfigurationProperties(prefix = "spring.mail") public class EmailConfig {      private String host;     private Integer port;     private String username;     private String password;      @Bean     public MailSender javaMailSender() {         JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();         javaMailSender.setHost(host);         javaMailSender.setPort(port);         javaMailSender.setUsername(username);         javaMailSender.setPassword(password);         return javaMailSender;     }      public void setHost(String host) {         this.host = host;     }     public void setPort(Integer port) {         this
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信