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