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

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

前言

对于想追求的女神,有时候缺乏主动的勇气和平亿近人的钞能力。那这个时候该怎么办呢?感情就是这样,退一步不舍得,进一步没资格。这个时候就想用我的行动去打动她,比如:每天给她在特定的时间(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)死循环语句去轰炸你女神的邮箱,如果你这样做了,我想你的号没了。在经过我不懈的努力后,女神终于有所回应,虽然不是我期待的结果,但我想这就是爱情吧。

相关文章
|
2月前
|
Python
定时提醒程序
【9月更文挑战第10天】
57 9
如何实现每天定时给女友/老婆发消息
如何实现每天定时给女友/老婆发消息
|
消息中间件 Shell RocketMQ
谁让你再使用cron发送延时消息,你直接给他一jio!(文末送书)
谁让你再使用cron发送延时消息,你直接给他一jio!(文末送书)
131 0
|
运维 安全 UED
这些网站发出的待升级信号你错过了吗?
这些网站发出的待升级信号你错过了吗?
183 1
这些网站发出的待升级信号你错过了吗?
|
存储 关系型数据库 MySQL
定时邮件服务(发送考研词汇)
定时邮件服务(发送考研词汇)
82 0
定时邮件服务(发送考研词汇)
|
Java 数据安全/隐私保护 Spring
如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件
如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件
270 0
如何使用JavaMailSender给曾经心爱的她发送一封特别的邮件
|
安全 Java Apache
早上收到这样一份通知,求一无漏洞框架,无力吐槽
关于停止使用Apache Struts2开发框架的通知   各有关单位: Apache Struts2(以下简称“S2”)是一种开源的、基于MVC架构的Java Web应用开发框架。S2自从2007年面世以来被国内外广泛使用,但也因屡次被披露存在高风险漏洞而闻名。
1194 0
另类保存微信公众平台历史消息的方法 - 星标消息
  前面怎样把微信聊天记录导出备份到电脑【微信公众平台技巧】介绍的通过复制源代码来保存微信公众平台历史消息的方法,有网友反映说不会用批量替换、不会批量换行保存,一头雾水。这里我们就说个简单的方法,直接用星标消息保存,打开微信公众号消息管理,鼠标移动到你要保存的消息,右侧会显示几个菜单,其中有个星星形状的,默认是灰色的,如下图红框所示,点击后变成黄色的小星星,这样微信公众号星标信息就完成了,so easy!哪里要存点哪里!      腾讯客服提供的回答“微信公众号星标信息有什么用?”   他们的解释是: 在“用户管理”中可以对成员进行“标记星标”,便于查看和找到该成员。
1041 1
|
监控 NoSQL 网络协议
好烦,一封报警邮件,大量服务节点 redis 响应超时,又得要捉“虫”!
大量TimeoutException,说明当前redis服务节点上已经堆积了大量的连接查询,超出redis服务能力,再次尝试连接的客户端,redis 服务节点直接拒绝,抛出错误。