教你如何五分钟捕获女神的芳心之定时邮件任务

简介: 教你如何五分钟捕获女神的芳心之定时邮件任务

前言

对于想追求的女神,有时候缺乏主动的勇气和平亿近人的钞能力。那这个时候该怎么办呢?感情就是这样,退一步不舍得,进一步没资格。这个时候就想用我的行动去打动她,比如:每天给她在特定的时间(13点14分)发送一条邮件。发邮件的同时,还得取一个醒目的标题去吸引女神的注意,比如:Mac口红只要19.9包邮。这里将使用JavaMail实现定时邮件任务,在没耗费精力的同时,又将捕获女神的芳心,可谓一箭双雕啊。

5ffc4cab6d855492972650a340679941_05ae67fb0f144b2586171fa332f6ef58.png

一、导入相关依赖

这里将使用Springboot集成JavaMail,只需导入spring-boot-starter-mail依赖即可

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

二、开通邮箱SMTP服务

1、首先开通你QQ邮箱或者网易邮箱的SMTP协议(简单邮件传输协议),这里以QQ邮箱为例。QQ邮箱,需要设置SSL加密,其它邮箱不需要。

2、发送短信:“配置邮件客户端”至 QQ邮箱指定的号码,获取SMTP服务授权码

三、配置信息

1 、配置发件人邮件用户名、授权码,设置QQ邮件服务器及SSL加密

2、发送一个简单的邮件,只有正文和标题,没有添加附件

@SpringBootTest
class TestApplicationTests {
    @Autowired
    JavaMailSenderImpl mailSender;
    @Test
    void contextLoads() {
        //一个简单的邮件
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setSubject("全村第二帅到此一游");   //邮件的主题
        mailMessage.setText("hello啊");   //邮件的正文
        mailMessage.setTo("XXXX");  //邮件发送给谁
        mailMessage.setFrom("xxxx");  //邮件从哪发送
        mailSender.send(mailMessage);
    }

结果:

3、配置一个复杂的邮件,利用MimeMessageHelper()进行组装,里面包括正文、标题还有附件。阅读源码可知,设置文本内容时,可插入html形式文本,对应QQ邮箱富文本编辑器。面对女神当然要用绿色字体,才能显示我的诚意。当然,我们还得取一个显眼的标题呢。

public void sendmail() throws MessagingException {
        //一个复杂的邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //利用MimeMessageHelper()组装
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        //邮件正文
        helper.setSubject("Mac口红包邮只要19.9");
        helper.setText("<p style='color:#39ef07'>女神,答应我吧</p>",true);
        //添加附件
        helper.addAttachment("1.jpg",new File("F:\\Java\\测试\\1.jpg"));
        helper.setTo("xxxx@qq.com");
        helper.setFrom("xxxx@qq.com");
        mailSender.send(mimeMessage);
}

4、配置定时任务


1)在启动类上面加上@EnableScheduling ,表示开启定时功能的注解。配置ScheduledService类,在该类上面添加@Scheduled注解,需要用到cron 表达式,表示在一个特定的时间段执行这个方法。


2)cron表示计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,会经常用到 cron 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的任务。


cron表达式 秒,分,时,日,月,星期


比如:0 0/2 * * * ?  ------> 表示每2分钟 执行任务

0 14 13 * * ? ------>表示每天13点14分0秒执行一次,捕获女神专用

0 0/30 9-17 * * ? ------> 表示 朝九晚五工作时间内每半小时

0 0/5 14,18 * * ? ------> 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

注:网上还有许多Cron表达式生成器,里面有许多例子可供参考

8a6e8f035a7148f18d1ce118c2043e1c_9a72430893664187ab8c180cf355c2e8.png

3)完整代码

package com.study.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
@Service
public class ScheduledService {
    /*
    cron 表达式  秒,分,时,日,月,星期
    0 14 13 * * ? 每天13点14分0秒执行一次
    0 0/5 10,18 * * ? 每天10点和18点,每隔五分钟执行一次
    */
    @Autowired
    JavaMailSenderImpl mailSender;
    @Scheduled(cron = "0 52 21 27 4 ?") //4月7号21点52分0秒定时发送邮件
    public void sendmail() throws MessagingException {
        //一个复杂的邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //利用MimeMessageHelper()组装
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        //邮件正文
        helper.setSubject("Mac口红包邮只要19.9");
        helper.setText("<p style='color:#39ef07'>女神,答应我吧</p>",true);
        //添加附件
        helper.addAttachment("1.jpg",new File("F:\\Java\\测试\\1.jpg"));
        helper.setTo("xxxx@qq.com");
        helper.setFrom("xxxx@qq.com");
        mailSender.send(mimeMessage);
        System.out.println("邮件发送成功");
    }
}

结果:


四、结束语

千万注意!!!在女神拒绝你之后,千万别恼羞成怒,说写一个while(true)死循环语句去轰炸你女神的邮箱,如果你这样做了,我想你的号没了。在经过我不懈的努力后,女神终于有所回应,虽然不是我期待的结果,但我想这就是爱情吧。

相关文章
|
11月前
|
算法 C++
单调队列(C/C++)
单调队列(C/C++)
|
8月前
|
存储 人工智能 Serverless
方案测评 | 零基础一键AI剧本生成与动画创作
阿里云推出基于AI技术的剧本生成与动画创作解决方案,利用函数计算FC、百炼模型服务和ComfyUI工具,实现从剧本撰写到视频合成的一站式自动化流程。该方案大幅降低动画制作的技术门槛与成本,加速内容生产,帮助创作者快速响应市场变化。通过体验发现,方案在高效性、创新性方面表现突出,但也存在视频生成时间较长、定制化功能不足等问题。整体而言,该方案为动画创作提供了新的可能性,尤其适合初创团队和个人创作者。
|
5月前
|
搜索推荐 应用服务中间件 PHP
301重定向完整指南: 原理、应用与实现方法
301重定向是一种永久性URL转发技术,用于将旧链接的权重传递给新URL,有助于SEO优化、提升用户体验和维护网站流量。本文介绍了301重定向的应用场景(如更换域名、HTTP转HTTPS等)、实现方法(Apache、Nginx、PHP等)及最佳实践,并解答了常见问题,帮助用户正确配置以确保网站无缝过渡。建议在操作前备份配置并使用工具验证效果。
517 10
|
8月前
|
存储 缓存 API
电商行业中 API 接口的常见问题和解决方法
本文探讨了电商行业中API接口的常见问题及解决方法。涵盖数据准确性(如数据不一致、数据缺失)、性能问题(如响应时间过长、吞吐量不足)、安全问题(如身份认证与授权、数据泄露风险)和兼容性问题(如接口版本兼容性、系统兼容性)。通过优化数据同步机制、缓存策略、网络配置、服务器负载均衡、代码逻辑,以及采用安全的身份认证方式和加密技术,结合实际代码示例,帮助开发者提升API接口的稳定性和安全性,确保电商业务顺利运行。
363 11
|
8月前
|
安全 网络安全 开发工具
解决Ascend上vllm运行时出现urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED]
在使用vllm模型时,运行示例代码下载模型文件时遇到了SSL安全校验问题。临时解决方案是修改`requests/sessions.py`文件中`request`函数的`verify`参数默认值为`False`。
|
9月前
|
人工智能 监控 前端开发
《C++ 与 JavaScript 携手:前端人工智能的创新融合之道》
在数字化时代,人工智能技术正迅速渗透至前端开发,C++与JavaScript的融合为前端智能化开辟新路径。C++的高效计算与JavaScript的灵活交互相结合,通过WebAssembly等技术,实现了复杂任务处理与用户界面的无缝对接,为智能图像识别、语音助手等应用提供了强大支持。面对开发复杂性和兼容性挑战,两者的深度融合仍需持续探索与优化。
135 26
|
9月前
|
存储 关系型数据库 MySQL
【MYSQL】 ——索引(B树B+树)、设计栈
索引的特点,使用场景,操作,底层结构,B树B+树,MYSQL设计栈
|
10月前
|
设计模式 测试技术 Go
学习Go语言
【10月更文挑战第25天】学习Go语言
140 4
|
算法 调度 容器
RT-Thread快速入门-互斥量
RT-Thread快速入门-互斥量
221 0
RT-Thread快速入门-互斥量
|
存储 算法 C++
【C/C++ 数据结构】哈希表冲突解决策略深度解析:原理、数学与C/C++实践
【C/C++ 数据结构】哈希表冲突解决策略深度解析:原理、数学与C/C++实践
303 0

热门文章

最新文章