• java学习day50--Spring Boot发送邮件任务


    springboot项目邮件任务

    在spring boot项目中使用邮件发送消息,比如注册用户时验证邮箱...

    开发步骤:

    • 引入依赖
    • springboot自动配置MailSenderAutoConfiguration
    • 手动配置MailPropertis内容
    • 自动装配JavaMailSender
    • 测试邮件发送

    1 导入依赖

    需要导入依赖:Java Mail Sender

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

    2 配置邮件服务于application.yml文件

    简单配置

    spring:
        mail:
            # 邮件服务地址
            host: smtp.qq.com
            # qq邮箱
            username: *****@qq.com
            # 授权码(注意! 不是邮箱密码)
            password: ******* # 经加密处理
            # other
            properties:
              mail:
                # 是否开启SSL(QQ邮箱请开启)
                smtp:
                  ssl:
                    enable: true
    

    完整配置

    spring:
      mail:
        # 邮件服务地址
        host: smtp.qq.com
        # 邮件服务端口
        port: 465
        # 编码格式
        default-encoding: UTF-8
        # qq邮箱
        username: ****@qq.com
        # 授权码(注意! 不是邮箱密码)
        password: **********
        # 协议
        protocol: smtp
        # other
        properties:
          mail:
            # 是否开启SSL(QQ邮箱请开启)
            smtp:
              ssl:
                enable: true
              required: true
            # 邮件接收时间限制(毫秒)
            timeout: 10000
            # 连接时间显示
            connectiontimeout: 10000
            # 邮件发送时间的限制,单位毫秒
            writetimeout: 10000
    

    3 创建测试类测试

    发送简单邮件

    在测试类中进行测试要加@SpringBootTest注解

    发送简单邮件的时候只支持文本,不支持html

    @Autowired
    private JavaMailSenderImpl javaMailSender;
    
    @Test
    void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage(); // 创建消息对象
        message.setSubject("标题"); // 标题
        message.setText("正文"); // 只支持文本, 不支持html
        message.setTo("1435430561@qq.com"); // 收件人
        message.setFrom("1435430561@qq.com"); // 发件人
        javaMailSender.send(message); // 发送
    }
    

    发送复杂邮件(可带有附件信息)

    @Autowired
    private JavaMailSenderImpl javaMailSender;
    @Test
    void testMail() throws MessagingException {
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setSubject("标题"); // 标题
        // 内容, 第二个参数为true则以html方式发送, 否则以普通文本发送
        helper.setText("<h1 style='red'>内容</h1>", true);
        //发送附件
        helper.addAttachment("1.jpg",new File("C:\14354\Desktop\loading\加载-063.gif"));
        helper.addAttachment("2.jpg",new File("C:\14354\Desktop\loading\加载-067.gif"));
        helper.setTo("1435430561@qq.com"); // 收件人
        helper.setFrom("1435430561@qq.com"); // 发件人
        javaMailSender.send(message); // 发送
    }
    
  • 相关阅读:
    Django之Models(一)
    数据库学习之事务
    pymysql的使用
    pymysql:Mysql拒绝从远程访问的解决办法
    Django之模板基础
    Django之视图函数总结
    POJ1942
    poj2115[扩展欧几里德]
    POJ1850&&POJ1496
    [Catalan数]1086 栈、3112 二叉树计数、3134 Circle
  • 原文地址:https://www.cnblogs.com/liqbk/p/13277866.html
Copyright © 2020-2023  润新知