程序员的浪漫之利用邮件定时表达爱意(SpringBoot整合mail服务)

获取邮箱安全密码

1.登录qq邮箱

2.点击设置

在这里插入图片描述

3.点击账户

在这里插入图片描述

4.往下滑找到下图所示位置

在这里插入图片描述
点击开启(本人这里开启过了,另外开启过程中会有验证,最后会发给你一个安全密码

5.建立SpringBoot项目

注意引入web和mail依赖
在这里插入图片描述

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

6.在application.properties中配置mail

#邮件相关配置
spring.mail.host=smtp.qq.com
spring.mail.port=587
#spring.mail.username的值是自己的qq邮箱
spring.mail.username=***@qq.com
#spring.mail.password的值是上面提到的安全密码
spring.mail.password=***

7.创建一个mail包

创建一个MailService的类

@Service
public class MailService {
    @Autowired
    private JavaMailSenderImpl javaMailSender;
    @Value("${spring.mail.username}")
    private String from;
//发送纯文本
    public void sendEmail(String to,String subject,String text){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setTo(to);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(text);

        try {
            javaMailSender.send(simpleMailMessage);
            System.out.println("发送成功");
        } catch (MailException e) {
            System.out.println("发送失败");
            e.printStackTrace();
        }
    }
//发送带附件的,这里不用
    public void sendComplexEmail(String to,String subject,String text,String filePath,String rscId,String rscPath){
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setSubject(subject);
            helper.setText(text,true);
            FileSystemResource resource = new FileSystemResource(new File(rscPath));
            helper.addInline(rscId,resource);
            FileSystemResource file = new FileSystemResource(new File(rscPath));
            String fileName=  filePath.substring(filePath.lastIndexOf(File.separator));
            helper.addAttachment(fileName,file);
            javaMailSender.send(message);
            System.out.println("发送成功");
        } catch (MessagingException e) {
            System.out.println("发送失败");
            e.printStackTrace();
        }
    }
}

8.在mail包下创建SendMail类

@Service
public class SendMail {
    @Autowired
    private MailService mailService;
     private int count3=3;    private int count4=3;
     private boolean flag2=false;
    private static String[] strings1 = new String[]{
            "人生中,观众向来比朋友多。观众只会让人从视觉上舒服,朋友却会让你内心感动。关心,不需要甜言蜜语,真诚就好;友谊,不需要朝朝暮暮,记得就好;问候,不需要语句优美,真心就好;爱护,不需要刻意的形式,温暖就好。",
            "让清晨第一缕阳光带去我的问候,叫醒你的好运,让斜阳的温馨余晖洒满我对你的满满祝福,积蓄梦想的力量。无论何时何地,一定记得保重身体,保持快乐。早上好。",
            "睁开睡眼,整理衣衫,精神抖擞,大步向前。晨光耀眼,阳光青年,为了理想,心向蓝天。绿草清香,宜人芬芳,展现微笑,新的一天!你好,早安!",
            "幸福不是轰轰烈烈,而是藏在平凡而充实的日子里。早起吃一顿营养丰盛的早餐,怀着责任心做好每一份工作,带着微笑和耐心回到家人身边。把生活中的每一天都过得热气腾腾,自能体会到幸福的滋味。新的一天,早晨!",
            "起床了,我的祝福到了:美丽的阳光伴着一声声问候,一阵阵微风,一朵朵白云,一片片真心,一框框祝福,送给我最惦记的朋友,愿九月的阳光送给你快乐!",
            "人生其实并不缺少快乐,缺少的只是感受快乐的心情,若要快乐,就要随和;若要幸福,就要随缘。快乐是心的愉悦,幸福是心的满足。快乐其实很简单,有人说,快乐是春天的鲜花,夏天的绿荫,秋天的野果,冬天的漫天飞雪。其实,快乐就在我们身边,一个会心的微笑,一次真诚的握手,一次倾心的交谈,就是一种快乐无比的事情!",
            "人生如酒,有了微笑的美酒,才飘着诱人的醇香;人生如歌,有了微笑的歌声,便多了动人的旋律;人生如书,有了微笑的书籍,便有了闪光的主题;人生如画,有了微笑的画卷,便添了亮丽的色彩。",
            "最快的脚步不是跨越,而是继续;最慢的步伐不是缓慢,而是徘徊;最好的道路不是大道,而是坦荡;最险的道路不是陡坡,而是陷阱;最大的幸福不是得到,而是拥有;最好的财富不是金钱,而是健康;最棒的祝福不是将来,而是现在。",
            "一天中,第一个叫醒你的是闹钟,第一眼看到的是阳光,第一件要做的事洗簌,第一顿吃的是早餐,第一句问候是早安,我就第一个祝福你:早安朋友,快乐每一天!",
            "早晨起床伸懒腰,对着镜子哈哈笑,说声早安会心笑,压力全抛无烦恼,刷牙洗脸哼小曲,开开心心一天到,问候不少在今朝,早安一生愿你好。早安。",
    };
  private static String[] strings2 = new String[]{
    "不管你身在何处,幸运与快乐时刻陪伴着你,愿每日与你同在的是美丽与幸福。人的这一生有太多的来来往往,有些我们转瞬即忘,有些我们刻骨铭心。友谊就在那些刻骨铭心中滋长,心中的思念联系莫忘,晚安,愿幸福放心上!",
    "知你工作回家身心疲惫,特送祝福给你:一天的结束,工资在手里数,压力烦躁通通删除,只留下幸福快乐,身强力壮,敏捷如鼠。黑夜送你一剂安神药,让你安然入睡,做个甜甜的美梦,晚安。",
    "睡不着的话就问问自己“为什么”吧。为什么要自寻烦恼呢?有什么过不去呢?为什么急躁呢?放下心不好吗?为什么想那么多呢?睡个好觉是现在最重要的事情,所以,晚安啦!为什么不呢?",
    "今晚的风儿轻轻飘,今晚的星星眨眼笑,今晚的月光把你照,今晚的电视节目俏,今晚的梦境最美妙,今晚的祝福马上到,祝你晚安睡好觉!",
    "问候前来,因你可爱。给个任务,睡觉比赛。自由组合,动作要快。草席枕头,各人自带。呼噜伴奏,周公断裁。别露肚脐,当心冻坏。明见分晓,晚安拜拜!",
    "今晚的风儿轻轻飘,今晚的星星眨眼笑,今晚的月光把你照,今晚的电视节目俏,今晚的梦境最美妙,今晚的祝福马上到,今晚的.短信写一条,恭祝你晚安睡好觉!",
    "知道小孩子为什么睡眠好吗,是因为没有压力,知道猪为什么睡的好吗,是因为没有想法,愿你丢掉压力,放弃幻想,做一个有好睡眠的小猪猪。",
    "三句话给心烦时的自己:第一句“算了吧”告诉自己,凡事努力但不可执着;第二句“不要紧”告诉自己,凡事努力了就无怨悔;第三句“会过去”告诉自己,明媚阳光总在风雨后。无论发生什么,一切都是最好的安排——朋友,晚安。",
    "人的这一生有太多的来来往往,有些我们转瞬即忘,有些我们刻骨铭心。友谊就在那些刻骨铭心中滋长,心中的思念联系莫忘,晚安,愿幸福放心上!",
    "花未眠,精神亦不新鲜;人已累,只盼轻松入睡;夜太美,星光除去疲惫;心相随,知心人儿来陪,剪掉压力的绳索,让睡意蓬勃。愿短信为你赶走一身疲惫,伴你安然入睡,晚安好梦!",
    "白天的所见所闻,晚上的日又所思,白头的不开心,晚上的好心情,带着好心情,晚安,朋友。"
    };
//这里设置的是早上七点和晚上十一点,如果需要,自行修改
    @Scheduled(cron = "0 0 7,23 * * *")
    public void sendToWang(){
        long start=System.currentTimeMillis();
        //将下面的邮箱地址换成发送对象的,不限于QQ邮箱
        String to="***qq.com";
        String subject;
        String text;
        if (flag2==true){
            if (count3>=strings1.length){
                count3=0;
            }
             //将下面的***换成发送对象的名字
            subject="[早上好呀,***!]";
            text=strings1[count3];
            flag2=false;
            count3++;
        }else {
            if (count4>=strings2.length){
                count4=0;
            }
             //将下面的***换成发送对象的名字
            subject="[晚上好呀,***!]";
            text=strings2[count4];
            flag2=true;
            count4++;
        }

        mailService.sendEmail(to,subject,text);
        long end = System.currentTimeMillis();
    
     
    }
}

上面的文字可以换成自己的,注意不要动英文的双引号

9.在SpringBoot启动类上添加注解

@EnableScheduling

@EnableScheduling
@SpringBootApplication
public class MailTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(MailTestApplication.class, args);
    }

}

10.启动SpringBoot即可

注意:如果关闭SpringBoot程序,程序不会执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪 华 杉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值