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

前言

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

一、导入相关依赖

这里将使用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("[email protected]");
        helper.setFrom("[email protected]");
        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表达式生成器,里面有许多例子可供参考

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("[email protected]");
        helper.setFrom("[email protected]");
        mailSender.send(mimeMessage);
        System.out.println("邮件发送成功");
    }
}

结果:

 四、结束语

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

猜你喜欢

转载自blog.csdn.net/qq_53860947/article/details/124462048