邮件发送的基本过程与概念 (摘自小滴课堂大课)

邮件服务器

类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中

电子邮箱 :用户在邮件服务器上申请的一个账户

* from:[xxx@xx.com](mailto:xxx@xx.com)  ----发件人
* to:[xxx@xx.com](mailto:xxx@xx.com)   ----收件人
*  subject:hello     ----主题
* body: 欢迎来到小滴课堂 -----内容体

邮件传输协议

SMTP协议

全称为 Simple Mail Transfer Protocol,简单邮件传输协议。它定义了邮件客户端软件和SMTP邮件服务器之间,以及两台SMTP邮件服务器之间的通信规则

POP3协议

全称为 Post Office Protocol,邮局协议。它定义了邮件客户端软件和POP3邮件服务器的通信 规则

IMAP协议

全称为 Internet Message Access Protocol,Internet消息访问协议,它是对POP3协议一种扩展,也是定义了邮件客户端软件和IMAP邮件服务器的通信规则

整合流程

配置邮箱服务器(发送端使用网易邮箱)

网易邮箱地址 https://mail.126.com/

开启POP3/SMTP服务

img

开启后,保存客户端授权码,后面配置文件需要用到

配置项目依赖

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

新增项目配置

  # 邮箱配置
  mail:
    host: smtp.qq.com #发送邮件服务器
    username: 123456@qq.com #QQ邮箱
    password: xxxxxxxxxxxxxxxx #客户端授权码
    protocol: smtp #发送邮件协议
    properties.mail.smtp.auth: true
    properties.mail.smtp.port: 465 #端口号465或587
    properties.mail.display.sendmail: Javen #可以任意
    properties.mail.display.sendname: Spring Boot Guide Email #可以任意
    properties.mail.smtp.starttls.enable: true
    properties.mail.smtp.starttls.required: true
    properties.mail.smtp.ssl.enable: true
    default-encoding: utf-8
    from: 123456@qq.com #与上面的username保持一致

用户微服务 service封装

service

public interface MailService {

    /**
     * 发送邮件
     * @param to
     * @param subject
     * @param content
     */
    void sendMail(String to, String subject, String content);
}

serviceImpl

@Service
@Slf4j
public class MailServiceImpl implements MailService {

    /*
     * springboot 提供的一个发送邮件的简单抽象, 直接注入即可
     */
    @Autowired
    private JavaMailSender mailSender;

    @Value("${spring.mail.from}")
    private String from;

    /**
     * 发送邮件
     * @param to        收件人
     * @param subject   主题
     * @param content   内容
     */
    @Override
    public void sendMail(String to, String subject, String content) {

        // 创建一个邮箱消息对象
        SimpleMailMessage message = new SimpleMailMessage();

        // 配置邮件发送人
        message.setFrom(from);

        // 邮件的收件人
        message.setTo(to);

        // 邮件的主题
        message.setSubject(subject);

        // 邮件的内容
        message.setText(content);

        // 发送邮件
        mailSender.send(message);

        log.info("邮件发送成功:{}", message.toString());

    }
}

单元测试

@RunWith(SpringRunner.class)
@SpringBootTest(classes = UserApplication.class)
@Slf4j
public class MailTest {

    @Autowired
    private MailService mailService;


    @Test
    public void testSendMail(){
        mailService.sendMail("123456@qq.com", "邮件发送测试", "testtesttest123");

    }


}

原文地址:http://www.cnblogs.com/isChenJY/p/16776506.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性