从零开始java邮件篇篇:spring Mail实现邮件发送

本文介绍了如何在企业级应用中使用Spring Boot结合Spring Mail发送邮件,详细讲解了pom依赖、yml配置、接口实现、异常处理、动态加载发送人信息以及定时任务的逻辑。强调了使用富文本代替模板的灵活性,并提供了从数据库加载发送人信息的思路。
摘要由CSDN通过智能技术生成

一:邮件发送

  毋庸置疑,在一个企业级的管理后台中,企业发送邮件是必要的的。在没有spring Mail之前,javaMail发送邮件的步骤是繁琐的。后来spring整合了相关的Mail之后,其API接口方式就变得很简单了。其实springboot2.x版本整合spring Mail还是很简单的。这里主要还是说明一下一些具体逻辑的处理:

  关于下面的三个箭头,我想就不用说明了吧,其实很核心的东西就在这个异步执行中。在企业邮件中我们会因为各种原因导致邮件发送不出去,如网络问题等,如果邮件没有发送出去的话,我我们如何进行二次甚至多次发送呢? 

  在多数的企业中采用了MQ的消费模式来进行处理。这里对于应用级别未达到使用tasker+redis实现邮件重发。具体实现:如果邮件发送出现异常,就将该条记录存储到Redis中,定时任务查询,如果有就发送,发送正常就删除该条K。

一些实现的逻辑说明了,我们直接上代码吧

二:代码

1.pom引入

   <!--springboot为2.0.6-->
  <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
   </dependency>

2.yml配置

spring.mail.host=smtp.163.com   //qq则为smtp.qq.com,其中qq需要开启smtp
spring.mail.password=mxz123456ccc
spring.mail.username=17626xxx70@163.com
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

3.方法接口

package com.config.mail.service.impl;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.mail.MailProperties;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

import com.config.mail.model.MyMailProperties;
import com.config.mail.service.MailConService;

import javax.mail.internet.MimeMessage;

/**
 * 实现类
 * @author Owner
 *
 */
@Service
public class MailConServiceImpl implements MailConService {

    private final static Logger logger = LoggerFactory.getLogger(MailConServiceImpl.class);

    @Autowired
    private MailProperties mailProperties;
    @Autowired
    private JavaMailSender javaMailSender;

    /**
     * 发送简单文本的邮件
     * @param to
     * &#
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值