您的当前位置:首页正文

SpringBoot实现邮件服务(附:常见邮箱的配置)

2021-07-17 来源:榕意旅游网
SpringBoot实现邮件服务(附:常见邮箱的配置)

前⾔

发送邮件应该是⽹站的必备功能之⼀,什么注册验证,忘记密码或者是给⽤户发送营销信息。最早期的时候我们会使⽤JavaMail相关api来写发送邮件的相关代码,后来spring退出了JavaMailSender更加简化了邮件发送的过程,在之后

springboot对此进⾏了封装就有了现在的spring-boot-starter-mail,本⽂将详细给⼤家介绍了关于Spring Boot邮件服务的相关内容,下⾯话不多说了,来⼀起看看详细的介绍吧1. pom.xml⽂件中引⼊依赖

org.springframework.boot spring-boot-starter-mail

2. 接⼝及实现类2.1 接⼝

package com.yuhuashang.demo.mail;/**

* @Author:

* @Date: 2018/12/5 15:28

* @Description: 邮件服务的接⼝ */

public interface MailService {

public void sendSimpleMail(String to, String subject, String content); }

2.2 实现类

package com.yuhuashang.demo.mail.impl;

import com.yuhuashang.demo.mail.MailService;import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.mail.SimpleMailMessage;

import org.springframework.mail.javamail.JavaMailSender;import org.springframework.stereotype.Component;

/**

* @Author:

* @Date: 2018/12/5 15:23

* @Description: 邮件服务的实现类 */

@Component

public class MailServiceImpl implements MailService{ private final Logger logger = (Logger)LoggerFactory.getLogger(this.getClass()); @Autowired

private JavaMailSender mailSender; @Value(\"${mail.fromMail.addr}\") private String from;

@Override

public void sendSimpleMail(String to, String subject, String content) { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to);

message.setSubject(subject); message.setText(content);

try {

mailSender.send(message);

logger.info(\"简单邮件已经发送。\"); }catch (Exception e) {

logger.error(\"发送简单邮件时发⽣异常!\ } } }

3. application.properties的配置

# 发送⼀⽅邮件信息

mail.fromMail.addr=XXXXXspring.mail.host=XXXXX

spring.mail.password=XXXXX

spring.mail.properties.smtp.auth=true

spring.mail.properties.smtp.timeout=25000spring.mail.username=XXXXXX

4. 常⽤邮箱的配置4.1 QQ个⼈邮箱

# 利⽤QQ个⼈邮箱发送邮件

mail.fromMail.addr=*************spring.mail.host=smtp.qq.com

spring.mail.password=XXXXXXX // 授权密码,⾮登录密码spring.mail.properties.smtp.auth=true

spring.mail.properties.smtp.timeout=25000spring.mail.username=***************

注意: spring.mail.password使⽤的开启stmp时,QQ给的授权码,⽬前需要发送短信开启。4.2 163个⼈邮箱

# 利⽤163个⼈邮箱发送邮件

mail.fromMail.addr=**************spring.mail.host=smtp.163.com

spring.mail.password=XXXXXXX // 授权密码,⾮登录密码spring.mail.properties.smtp.auth=true

spring.mail.properties.smtp.timeout=25000spring.mail.username=***************

注意: spring.mail.password使⽤的开启stmp时,163的授权码,⽬前需要⾃⼰设定。4.3 阿⾥云个⼈邮箱

# 利⽤aliyun个⼈邮箱发送

mail.fromMail.addr=*****************spring.mail.host=smtp.aliyun.com

spring.mail.password=XXXXXX // 默认开启,填登陆密码即可spring.mail.properties.smtp.auth=true

spring.mail.properties.smtp.timeout=25000spring.mail.username=******************

注意: spring.mail.password使⽤的是登陆密码,阿⾥云的stmp默认开启的,我在邮箱上没有发现可以开启或关闭的地⽅,⾃⼰⽤的登陆密码试过,是可以⽤的。4.4 QQ企业邮箱

# 利⽤QQ企业邮箱发送邮件

mail.fromMail.addr=*************spring.mail.host=smtp.exmail.qq.com

spring.mail.password=XXXXXXX // 授权密码,⾮登录密码spring.mail.properties.smtp.auth=true

spring.mail.properties.smtp.timeout=25000spring.mail.username=***************

注意: spring.mail.password使⽤的是授权码,⾮登陆密码,最近没有⽤QQ企业邮箱,之前实现过,⽬前应该是这样的。4.5 163企业邮箱

# 利⽤163企业邮箱发送邮件

mail.fromMail.addr=**************spring.mail.host=smtp.qiye.163.com

spring.mail.password=XXXXXXX // 授权密码,⾮登录密码spring.mail.properties.smtp.auth=true

spring.mail.properties.smtp.timeout=25000spring.mail.username=**************

注意: spring.mail.password使⽤的是授权码,⾮登陆密码,由于没有使⽤过163企业邮箱,故不能保证可⽤性,如果有⽤过的朋友,可以给个中肯的答案。4.6 阿⾥云企业邮箱

# 利⽤aliyun企业邮箱发送

mail.fromMail.addr=****************spring.mail.host=smtp.mxhichina.com

spring.mail.password=XXXXX // 默认开启,填登陆密码即可spring.mail.properties.smtp.auth=true

spring.mail.properties.smtp.timeout=25000spring.mail.username=**************

注意: spring.mail.password使⽤的是登陆密码,⽬前正使⽤阿⾥云企业邮箱,⾃⼰亲⾃测试过,⽬前是可以⽤的,填登陆密码即可。总结

以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。

因篇幅问题不能全部显示,请点此查看更多更全内容