SpringBoot实现发送QQ邮件的示例代码

目录
  • 配置发送邮件
    • 1、引入SpringBoot的Mail依赖
    • 2、配置邮箱发送的Bean
    • 3、发送测试邮件
    • 4、查看效果
  • 应用启动&停止邮件通知
  • 总结

在跑个人应用的时候,想引入一个通知机制,在应用启动和停止的时候通知下自己(因为应用部署在服务器上,不想每次都到服务器上看);

  • 发送短信要申请模板,而且还收费...
  • 发送手机通知又太多依赖;
  • 钉钉、微信;至于钉钉和微信骚扰消息太多了,容易漏掉通知信息

剩下的就是发送邮箱、免费、而且没有那么多的通知干扰,邮箱App在收到邮件的时候会自动的发生一条Push。而且配置起来很简单... 那就动手操作起来吧。

配置发送邮件

1、引入SpringBoot的Mail依赖

如果是Spring Boot应用不需要指定版本号了

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

2、配置邮箱发送的Bean

如下配置

在配置前获取QQ邮箱授权码;QQ邮件在Spring的Bean中密码为授权码。

@Configuration
public class MailConfig {

    @Bean
    public JavaMailSender getJavaMailSender() {
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
//        mailSender.setHost("smtp.gmail.com");
        mailSender.setHost("smtp.qq.com");
        mailSender.setPort(587);

        mailSender.setUsername("aihehe123@foxmail.com");
        mailSender.setPassword("这里是QQ邮箱的授权码");

        Properties props = mailSender.getJavaMailProperties();
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.debug", "true");

        return mailSender;
    }
}

3、发送测试邮件

发送普通文本

            SimpleMailMessage simpleMessage = new SimpleMailMessage();
            simpleMessage.setFrom("aihehe123@foxmail.com");
            simpleMessage.setTo("aihehe123@foxmail.com");
            simpleMessage.setSubject("test");
            simpleMessage.setText("hello");
            javaMailSender.send(simpleMessage);

发送带附件的文本

           MimeMessage message = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(message, true);
            mimeMessageHelper.setFrom("aihehe123@foxmail.com");
            mimeMessageHelper.setTo("aihehe123@foxmail.com");
            mimeMessageHelper.setSubject("test");
            mimeMessageHelper.setText("hello");

            String path = "http://gif.aihe.space/dd467677ea35485da3d12326fcf36e5d.gif";
            UrlResource fileUrlResource = new UrlResource(path);
            mimeMessageHelper.addAttachment(UrlUtils.parseUrlName(path), fileUrlResource);

            javaMailSender.send(message);

4、查看效果

前两个邮件是带附件的,最下面一个是不带附件的;

应用启动&停止邮件通知

1、配置发送邮件的模板

public class MailUtils {
    public static SimpleMailMessage makeSimpleMessage(String subject,String text){
        SimpleMailMessage simpleMessage = new SimpleMailMessage();
        simpleMessage.setFrom("aihehe123@foxmail.com");
        simpleMessage.setTo("aihehe123@foxmail.com");
        simpleMessage.setSubject(subject);
        simpleMessage.setText(text);
        return simpleMessage;
    }
}

2、应用启动通知

@Component
@Slf4j
public class ApplicationStartHandler implements ApplicationListener<ContextRefreshedEvent> {

    @Autowired
    JavaMailSender javaMailSender;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        javaMailSender.send(MailUtils.makeSimpleMessage("应用启动通知",""));
        log.info("app start mail sended");
    }
}

3、应用停止通知;

public class XXXApplication {

    @Autowired
    JavaMailSender javaMailSender;

    public static void main(String[] args) {
        SpringApplication.run(XXXApplication.class, args);
    }

    @PreDestroy
    public void onExit() {
        log.info("###STOPing###");
        javaMailSender.send(MailUtils.makeSimpleMessage("应用停止通知", ""));
        log.info("###STOP FROM THE LIFECYCLE###");
    }

}

总结

对个人的一些小型应用来说,对比短信、Push、钉钉、微信等通知方式,个人认为邮箱是简单、免费、最有效的通知方式。

然后给了简单的Demo演示下如何配置Spring Boot支持发送邮件,以及给一个案例在应用启动和停止的时候发送邮件通知给自己;

到此这篇关于SpringBoot实现发送QQ邮件的示例代码的文章就介绍到这了,更多相关SpringBoot发送QQ邮件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot中发送QQ邮件功能的实现代码

    本文是vhr系列的第十二篇,项目地址 https://github.com/lenve/vhr 邮件发送也是一个老生常谈的问题了,代码虽然简单,但是许多小伙伴对过程不太理解,所以还是打算和各位小伙伴聊聊这个话题. 邮件协议 我们经常会听到各种各样的邮件协议,比如SMTP.POP3.IMAP,那么这些协议有什么作用,有什么区别?我们先来讨论一下这个问题. SMTP是一个基于TCP/IP的应用层协议,江湖地位有点类似于HTTP,SMTP服务器默认监听的端口号为25.看到这里,小伙伴们可能会想到既然S

  • springboot实现发送邮件(QQ邮箱为例)

    本文实例为大家分享了springboot实现发送邮件的具体代码,供大家参考,具体内容如下 1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 2.找到qq邮箱,开启smtp服务,这里生成你的密码,复制第三步用 3.password里输

  • springboot 使用QQ邮箱发送邮件的操作方法

    目录 一.QQ邮箱打开POP3/SMTP服务 二.springboot配置 一.QQ邮箱打开POP3/SMTP服务 上面的服务开启后,会得到一串授权密码在springboot配置中需要用到 二.springboot配置 IDE目录 1.在pom.xml添加spring-boot-starter-mail起步依赖 <!-- springboot开发mail项目的起步依赖--> <dependency> <groupId>org.springframework.boot&l

  • SpringBoot QQ邮箱发送邮件实例代码

    目录 1.获取QQ邮箱授权码 2.导入邮箱发送依赖启动器 3.配置文件yml添加邮件服务配置 4.编写接口IMailService 5.编写实现MailServiceImpl 6.Controller调用 7.thymeleaf模板 mailTemplate.html 总结 SpringBoot整合邮件任务(QQ邮箱发送) 1.获取QQ邮箱授权码 2.导入邮箱发送依赖启动器 使用定制邮件模板的方法实现通用邮件发送,Thymeleaf构建邮件模板需要一起导入依赖. <!-- Mail --> &

  • SpringBoot实现发送QQ邮件的示例代码

    目录 配置发送邮件 1.引入SpringBoot的Mail依赖 2.配置邮箱发送的Bean 3.发送测试邮件 4.查看效果 应用启动&停止邮件通知 总结 在跑个人应用的时候,想引入一个通知机制,在应用启动和停止的时候通知下自己(因为应用部署在服务器上,不想每次都到服务器上看): 发送短信要申请模板,而且还收费... 发送手机通知又太多依赖: 钉钉.微信:至于钉钉和微信骚扰消息太多了,容易漏掉通知信息 剩下的就是发送邮箱.免费.而且没有那么多的通知干扰,邮箱App在收到邮件的时候会自动的发生一条P

  • C#实现接收QQ邮件的示例代码

    目录 实现功能 开发环境 实现代码 前面写了一篇通过smtp协议利用qq邮箱去实现发送邮件的功能.这一篇我们使用pop协议来实现一下接收邮件. 由于邮件的内容类型比较丰富,我暂时没有一个比较好的解决方案(确切的说我是懒得一种种去解析),所以这里就获取下邮件的列表,以及邮件的标题信息 实现功能 C#获取QQ邮箱内的邮件 开发环境 开发工具: Visual Studio 2013 .NET Framework版本:4.5 实现代码 static class Program { static stri

  • python 发送qq邮件的示例

    python自带了两个模块smtplib和email用于发送邮件.smtplib模块主要负责发送邮件,它对smtp协议进行了简单的封装.email模块主要负责邮件的构造. email包下有三个模块:MIMEText,MIMEImage,MIMEMultipart 发送纯文本qq邮件 import smtplib from email.header import Header from email.mime.text import MIMEText sender = '888888@qq.com'

  • 使用spring mail发送html邮件的示例代码

    序 本文展示一下如何使用spring mail来发送html邮件. maven <!-- email --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> 发送图片 public void send(String from, St

  • SpringBoot实现发送短信的示例代码

    一.说明 在https://office.ucpaas.com/ 注册账号并且认证为个人开发者(需要身份证),这个不难,不多说了 短信的三方平台有许多,对于选择什么平台要根据个人业务场景选择,这里只是DEMO 二.创建平台项目 创建平台项目后可以获得短信基础配置,在调用短信接口时使用 三.创建短信模板 模板动态参数设置规则为{1}{2}{3}...{n} (注意:在调用时参数之间拼接用逗号作为间隔符,这个见代码描述) 四.使用RestTemplate调用短信接口 Spring Boot 版本:2

  • Python实现发送QQ邮件的封装

    本文实例为大家分享了Python实现发送QQ邮件的封装代码,供大家参考,具体内容如下 封装code import smtplib from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header # type=plain 文本格式 默认 # type=ht

  • python实现发送QQ邮件(可加附件)

    本文实例为大家分享了python实现发送QQ邮件的具体代码,供大家参考,具体内容如下 东西比较简单,简单讲一下,直接贴代码了,其他邮箱都类似. 1.首先在qq 邮箱里面把stmp服务 打开 2.拉到下面,开启第一个,发送短信验证后会得到一个授权码: 3.代码,要注意的地方我都贴了注释: # coding=utf-8 import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage

  • Python结合Window计划任务监测邮件的示例代码

    说起自动化绝对算是茶余饭后最有显B格的谈资,毕竟解放双手是从老祖先那里就流传下来的基因,都2020了,你每天上班还要登录各个邮箱账号查收邮件?快来解锁本章内容 整体思路 通过Python zemail库实现邮件读取 将最新一封邮件ID进行保存,第二次执行时比对邮件ID,判断是否是新邮件 通过Python pymsgbox库实现window弹窗提示 配置Window计划任务,每1分钟执行一次 步骤一:邮件读取 读取邮件通过Python zemail库进行,使用前通过 pip install zem

  • python基于SMTP发送QQ邮件

    python基于SMTP发送QQ邮件,供大家参考,具体内容如下 第一步: 1.打开qq邮箱,开启smtp服务 2.验证密保 3.获取授权码 python代码里面使用 在Python中, smtplib模块提供了丰富的邮件发送接口,只要设置smtp服务器和端口,输入账号密码登陆,就可以使用邮件发送的接口. import smtplib from email.mime.text import MIMEText from email.header import Header sender='send@

随机推荐