java语言情话_用Java实现每天给对象发情话

用Java实现每天给对象发情话

来源:https://blog.csdn.net/qq_33758782

一、引言

最近看到一篇用js代码实现表白的文章,深有感触。

然后发现自己也可以用java代码实现,然后就开始写代码了,发现还挺有意思的,话不多说开搞

实现思路:使用HttpClient远程获取彩虹屁生成器网站中的内容 网站:https://chp.shadiao.app/

java Mail 实现发送邮件

SpringBoot 整合Scheduled 实现定时发送邮件二、搭建项目

项目环境在SpringBoot框架基础上,加入邮件发送mail、RPC远程调用httpclient、Scheduled 的一个Maven项目,依赖如下:parent

groupIdorg.springframework.boot/groupId

artifactIdspring-boot-starter-parent/artifactId

version2.3.2.RELEASE/version

/parent

dependencies

dependency

groupIdorg.springframework.boot/groupId

artifactIdspring-boot-starter-mail/artifactId

/dependency

dependency

groupIdorg.springframework/groupId

artifactIdspring-context-support/artifactId

/dependency

!-- httpclient 依赖 --

dependency

groupIdorg.apache.httpcomponents/groupId

artifactIdhttpclient/artifactId

version4.5.12/version

/dependency

/dependencies

!--打包插件--

build

plugins

plugin

groupIdorg.springframework.boot/groupId

artifactIdspring-boot-maven-plugin/artifactId

configuration

forktrue/fork

/configuration

/plugin

/plugins

/build

三、编写配置

在编写配置前需要,在浏览器登录自己的邮箱在账号安全中设置开启POP3/SMTP服务225148e5c7070a6f5803f04ce453da0f.png

开始开启POP3/SMTP服务需要输入验证码d908eb3b873f38f1f37e4399bc86a1cf.png

复制授权码f016aa7ea5b2b7c32a5909b99e0f9f36.png

勾选SMTP发信后保存到服务器,勾选这一项主要是可以看到自己发送了什么信息,不勾选此项。邮件消息发送成功后,邮箱内看不到自己已发送的信息02faf7e5d3389ecb6e07a7d205c957d8.png

根据授权码编写配置spring:

mail:

username: xxxxxx@qq.com # 自己邮箱地址

password: xxxxxxx # SMTP|POP3|IMAP协议授权码

host: smtp.qq.com # 服务器地址。参考邮箱服务运营商提供的信息。

properties:

mail:

smtp:

auth: true # 开启smtp协议验证

port: 587

# 发给谁的邮箱

she:

mail: xxxxxxx@163.com

四、编写SpringBoot启动类@EnableScheduling

@SpringBootApplication

public class BiaoBaiApp {

public static void main(String[] args) {

SpringApplication.run(BiaoBaiApp.class,args);

}

五、自动生成发送内容@Component

public class SendMessage {

@Autowired

private JavaMailSender mailSender;

@Value(${spring.mail.username})

private String from;

@Value(${she.mail})

private String[] sheMail;

public void sendMessage(String subject,String message) {

try {

MimeMessage mimeMessage = mailSender.createMimeMessage();

MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);

helper.setFrom(from);//发送者邮件邮箱

helper.setTo(sheMail);//收邮件者邮箱

helper.setSubject(subject);//发件主题

helper.setText(message);//发件内容

mailSender.send(helper.getMimeMessage());//发送邮件

} catch (MessagingException e) {

e.printStackTrace();

}

}

/**远程获取要发送的信息*/

public static String getOneS(){

try {

//创建客户端对象

HttpClient client = HttpClients.createDefault();

/*创建地址 https://du.shadiao.app/api.php*/

HttpGet get = new HttpGet(https://chp.shadiao.app/api.php);

//发起请求,接收响应对象

HttpResponse response = client.execute(get);

//获取响应体,响应数据是一种基于HTTP协议标准字符串的对象

//响应体和响应头,都是封装HTTP协议数据。直接使用可能出现乱码或解析错误

HttpEntity entity = response.getEntity();

//通过HTTP实体工具类,转换响应体数据

String responseString = EntityUtils.toString(entity, utf-8);

return responseString;

} catch (IOException e) {

throw new RuntimeException(网站获取句子失败);

}

}

}

六、编写定时任务@Component

public class MyScheduled {

@Autowired

private SendMessage sendMessage;

/*定时执行任务方法 每天5点20执行该任务*/

@Scheduled(cron =0 20 17 * * *)

public void dsrw(){

String message = sendMessage.getOneS();

sendMessage.sendMessage(来自清茶淡粥的消息!?,message);

}

}

七、打包运行

有条件的可以吧jar包放在运服务器上,没有条件的可以在本地win10系统上添加定时任务,每天定时执行jar包。

jar包放在服务器上需要放行端口:587 ,防火墙放行587端口

除了放行,还有放行 http 端口 和 https端口2387096e7e9b790769417cbfab099feb.png

然后在linux上后台启动jar包nohup java -jar jar包 test.log

win10 定时运jar 包 在任务计划程序中创建任务fd25f774420d882fe968eca76d01bbda.png

新建触发器060e6b73279b6b8583970ce23f70a59b.png

新建操作,在程序或脚本输入执行的jar命令,点击确定0a7bd16164b10ec93618061f4fe85872.png

然后可以看见,创建好的任务844c8b205fb4c18f15c7e57a10e92b1e.png八、总结

代码还有很大的提升,也有很多不足之处。

由于时间原因,可优化的地方还很多,比如:发送单纯的文字内容的邮件,不美观,可以实现html方式发送邮件,使发送邮件内容更加美观。public void sendHtmlMessage(String subject,String message){

try {

MimeMessage mimeMessage = mailSender.createMimeMessage();

MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);

helper.setFrom(from);

helper.setTo(sheMail);

helper.setSubject(subject);

helper.setText(message,true);//true 使用html 方式发送

mailSender.send(helper.getMimeMessage());

} catch (MessagingException e) {

e.printStackTrace();

}

最后附上我写的源码供大家参考:百度云链接:

https://pan.baidu.com/s/17z1Pjs1iP9CDd7IYuGohYA

提取码: 4rxp

PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。

END

用Java实现每天给对象发情话 相关文章

基于Java开发一套完整的区块链系统(附源码)

来源:https://blog.csdn.net/victory_long 前言 近几年区块链概念越来越火,特别是区块链技术被纳入国家基础设施建设名单后,各大企业也开始招兵买马,对区块链技术进行研究,从各大招聘网站的区块链职位来看,薪资待遇都很不错,月薪30K到80K的都有,这对

Java最新前沿技术:ZGC垃圾收集器

ZGC介绍 ZGC(The Z Garbage Collector)是JDK 11中推出的一款追求极致低延迟的实验性质的垃圾收集器,它曾经设计目标包括: 停顿时间不超过10ms; 停顿时间不会随着堆的大小,或者活跃对象的大小而增加; 支持8MB~4TB级别的堆,未来支持16TB。 基于最新的JD

浅谈 Java 并发下的乐观锁

引子 各位少侠大家好!今天我们来聊聊 Java 并发下的乐观锁。 在聊乐观锁之前,先给大家复习一个概念:原子操作: 什么是原子操作呢? 我们知道,原子(atom)指化学反应不可再分的基本微粒。在 Java 多线程编程中,所谓原子操作,就是即使命令涉及多个操作

树状图js的实现方法

本文是基于决策树的需求做的前期demo实现,所以以二叉树为实现目标。基本术语如下: 二叉树 1、二叉树中的节点最多只能有两个子节点,一左一右。因此不怒在度大于2的节点 2、左右子节点的顺序不能颠倒 body canvas id=canvas/canvas button class=btn onClic

VS Code无法实现转到定义

导读 VS Code一度个人日常工作中必不可少的IDE之一,在前文中也提到,它和Jupyterlab+Pycharm构成了个人工作日常IDE组合。然而,近日在新电脑中搭建Python环境中,发现VS Code的一个重要功能——转到定义无法使用,这俨然使VS Code的威力大打折扣,毕竟个人

百度地图API基础功能实现

百度地图API基础功能实现 百度地图API官网 http://lbsyun.baidu.com/ 前台代码 htmlhead meta name="viewport" content="initial-scale=1.0, user-scalable=no" / meta http-equiv="Content-Type" content="text/html; charset=utf-8" / titlegrp游击队/title

Linux去重实现类似mysql的distinct的功能

拿了一份邮箱地址,想要对地址进行去重。 打开文件一看,好几列。有逗号区分也有空格区分 9589,860122@qq.com,1,1,2015-04-08 15:31:07.763000000,陕西省咸阳市,qq.com,59590,4605708@qq.com,1,1,2015-04-08 15:31:07.763000000,广东省深圳市,qq.com,59591,3

基于腾讯云存储网关 CSG 实现视频在线转码分发

一、背景 随着越来越多的传统业务云化和云端业务发展,数据上云和云端数据处理领域的需求爆发式增长。 腾讯云存储网关CSG 提供一键部署开箱即用的便捷模式,深度结合 COS对象存储 生态 ,为用户提供方便快捷的数据上云通道,有效满足业务数据备份、数据上云

java多线程技术第N篇|AtomicInteger源码赏析

一,AtomicInteger源码赏析 1,为什么要使用原子类AtomicInteger? 好久没有进行输入了,之前很长一段时间都在输出过往的leetCode题解,但是,越输出越觉得自己心里很慌,其主要原因在于我输出的都是我已经会的了,然而我还是花了很长时间来输出了,主要是为

腾讯安全发布《CCGP跨链治理白皮书》实现“以链治链”跨链协作

数字时代,城市治理、政务管理透明化、药品溯源以及产业信息共享等需求的扩大,加速着区块链应用在产业场景的规模化部署与渗透。在“链上应用”的新趋势下,企业对链间互信管理、数据和业务跨链交互等需求的逐步攀升,更是让融通链间循环和协作成为迫切之需

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值