对于想追求的女神,有时候缺乏主动的勇气和平亿近人的钞能力。那这个时候该怎么办呢?感情就是这样,退一步不舍得,进一步没资格。这个时候就想用我的行动去打动她,比如:每天给她在特定的时间(13点14分)发送一条邮件。发邮件的同时,还得取一个醒目的标题去吸引女神的注意,比如:Mac口红只要19.9包邮。这里将使用JavaMail实现定时邮件任务,在没耗费精力的同时,又将捕获女神的芳心,可谓一箭双雕啊。
这里将使用Springboot集成JavaMail,只需导入spring-boot-starter-mail依赖即可
org.springframework.boot
spring-boot-starter-mail
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("女神,答应我吧
",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("女神,答应我吧
",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)死循环语句去轰炸你女神的邮箱,如果你这样做了,我想你的号没了。在经过我不懈的努力后,女神终于有所回应,虽然不是我期待的结果,但我想这就是爱情吧。