• JavaMail邮件发送服务


    记录一次使用基于SpringBoot来设置发送邮件的服务

    导入依赖

    
    
        org.springframework.boot
        spring-boot-starter-mail
        ${springboot.version}
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    开启自己邮箱的SMTP/IMAP服务,获取授权码,写入配置文件

    #发送邮件配置相关
    # 配置邮件服务器的地址 smtp.qq.com
    spring.mail.host=smtp.qq.com
    # 配置邮件服务器的端口(465587)
    spring.mail.port=465
    # 配置用户的账号
    spring.mail.username=xxxxx@qq.com
    # 配置用户的密码
    spring.mail.password=填入授权码
    # 配置默认编码
    spring.mail.default-encoding=UTF-8
    # SSL 连接配置
    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
    # 开启 debug,这样方便开发者查看邮件发送日志
    spring.mail.properties.mail.debug=true
    #邮件配置结束
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    一次简单的邮件发送

    Service层:注入JavaMailSender对象,利用MimeMessageHelper对象来设置要发送的邮件,最后调用JavaMailSender的send()方法进行发送

        private void sendEmailCode(String toEmail, String code) {
            try {
                MimeMessage message = javaMailSender.createMimeMessage();
                //MimeMessageHelper用来简化对MineMessage的设置
                MimeMessageHelper helper = new MimeMessageHelper(message, true);
                //邮件发件人
                helper.setFrom(appConfig.getSendUserName());
                //邮件收件人 1或多个
                helper.setTo(toEmail);
    
                SysSettingsDto sysSettingsDto = redisComponent.getSysSettingsDto();
    
                //邮件主题
                helper.setSubject(sysSettingsDto.getRegisterEmailTitle());
                //邮件内容
                helper.setText(String.format(sysSettingsDto.getRegisterEmailContent(), code));
                //邮件发送时间
                helper.setSentDate(new Date());
                javaMailSender.send(message);
            } catch (Exception e) {
                logger.error("邮件发送失败", e);
                throw new BusinessException("邮件发送失败");
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    Linux Hadoop平台伪分布式安装(Hive on Spark)
    【愚公系列】2022年09月 微信小程序-webview内嵌网页的授权认证
    基本的五大排序算法
    云原生定义整理
    SpringBoot中异步注解@Async介绍
    【MySQL】数据库基础知识
    [附源码]java毕业设计医院就诊流程管理系统
    设计模式Java实战
    MySql索引
    vue-quill-editor 富文本编辑器上传视频
  • 原文地址:https://blog.csdn.net/m0_56642224/article/details/134453139