前⾔
发送邮件应该是⽹站的必备功能之⼀,什么注册验证,忘记密码或者是给⽤户发送营销信息。最早期的时候我们会使⽤JavaMail相关api来写发送邮件的相关代码,后来spring退出了JavaMailSender更加简化了邮件发送的过程,在之后
springboot对此进⾏了封装就有了现在的spring-boot-starter-mail,本⽂将详细给⼤家介绍了关于Spring Boot邮件服务的相关内容,下⾯话不多说了,来⼀起看看详细的介绍吧1. pom.xml⽂件中引⼊依赖
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使⽤的是登陆密码,⽬前正使⽤阿⾥云企业邮箱,⾃⼰亲⾃测试过,⽬前是可以⽤的,填登陆密码即可。总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,如果有疑问⼤家可以留⾔交流,谢谢⼤家对的⽀持。
因篇幅问题不能全部显示,请点此查看更多更全内容