Java实现邮件自动发送

有时候我们会遇到自动发送邮件通知、邮件验证码、节假日祝福邮件发送、邮件自动发送广告功能,今天我们就谈谈邮件自动发送是怎么实现的。案例使用Java语言来编写,使用springBoot来搭建项目。

步骤一:添加邮件依赖:spring-boot-starter-mail,如下图:

如上图所示,添加项目使用到的依赖。

步骤二:在配置文件编写邮箱信息,我这里使用yml文件格式,如下图:

步骤三:在邮箱获取授权码,这里使用qq邮箱,如下图:

1. 获取授权码入口:

2. 开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

步骤三:代码的编写,这里只写一个简单的示例,大家可以自行扩展,如下图:

1. 邮件发送工具类编写

代码全:

package com.common.common.utils;

import org.springframework.mail.SimpleMailMessage;

/**
 * <Description> 右键发送工具
 * @author WEIQI
 * @version V1.0
 * @createDate 2019-06-14 16:06
 * @see com.common.common.utils
 */
public class SendMailUtil {

    /**
    * Description 邮件发送自定义方法
    * @author WEIQI
    * @param subject 邮件标题
    * @param text  邮件内容
    * @createDate 2019/6/14 17:03
    **/
    public SimpleMailMessage sendIdentifyingCode(String subject, String text) {
        
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(text);

        simpleMailMessage.setFrom("627501768@qq.com");
        simpleMailMessage.setTo("WEI_QI@vip.163.com");

        return simpleMailMessage;
    }
}


2. 自动发送邮件定时任务

代码全:

package com.common.common.utils;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * <Description> 邮件定时发送
 * @author WEIQI
 * @version V1.0
 * @createDate 2019-06-14 17:06
 * @see com.common.common.utils
 */
@Component
@EnableScheduling
public class SendMailTask {

    private static Log log = LogFactory.getLog(SendMailTask.class);

    @Autowired
    JavaMailSenderImpl javaMailSender;

    @Value("${mail.subject}")
    String subject;
    @Value("${mail.sendText}")
    String sendText;

    /**
    * Description 邮件发送定时任务,示例中每隔五秒执行一次
    * @author WEIQI
    * @param
    * @createDate 2019/6/14 17:38
    **/
    @Scheduled(cron = "*/5 * * * * ?")
    public void timingSendMail() {
        log.info("*** 邮件发送定时任务 ***");

        javaMailSender.send(new SendMailUtil().sendIdentifyingCode(subject, sendText));
    }
}

 

3. 配置文件信息

spring:
  application:
    name: common
  mail:
    username: 627501768@qq.com
    password: "你的授权码"
    host: smtp.qq.com
    properties:
      smtp:
        ssl:
          enable: true
server:
  port: 8083
eureka:
  client:
    service-url:
      defaultZone: http://weiqi:weiqi123456@localhost:8761/eureka

# 项目常量配置
mail:
  subject: "国庆节快乐"
  sendText: "∴★*°☆∴ 提前祝您国庆节快乐 ∴☆ *★∴"

步骤四:测试

启动项目查看设定的邮箱,收到我们自定义的邮件,如图所示:

按照上面操作,你就可以自己实现一个简单的邮件自动发送系统,如果想要更复杂的业务逻辑,可以自己做扩展。

消息可以设置的参数如下图,可以自行设置:

你也可以根据自己的使用场景,添加更多工具类,比如:邮件验证码、节假日祝福邮件定时发送、推销广告等等。

  • 6
    点赞
  • 2
    评论
  • 29
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值