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服务
开始开启POP3/SMTP服务需要输入验证码
复制授权码
勾选SMTP发信后保存到服务器,勾选这一项主要是可以看到自己发送了什么信息,不勾选此项。邮件消息发送成功后,邮箱内看不到自己已发送的信息
根据授权码编写配置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端口
然后在linux上后台启动jar包nohup java -jar jar包 test.log
win10 定时运jar 包 在任务计划程序中创建任务
新建触发器
新建操作,在程序或脚本输入执行的jar命令,点击确定
然后可以看见,创建好的任务八、总结
代码还有很大的提升,也有很多不足之处。
由于时间原因,可优化的地方还很多,比如:发送单纯的文字内容的邮件,不美观,可以实现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跨链治理白皮书》实现“以链治链”跨链协作
数字时代,城市治理、政务管理透明化、药品溯源以及产业信息共享等需求的扩大,加速着区块链应用在产业场景的规模化部署与渗透。在“链上应用”的新趋势下,企业对链间互信管理、数据和业务跨链交互等需求的逐步攀升,更是让融通链间循环和协作成为迫切之需
java语言情话_用Java实现每天给对象发情话相关推荐
- 浙大java语言程序设计_浙江大学java语言程序设计实验答案全集.doc
浙江大学java语言程序设计实验答案全集.doc 1JAVA答案全集实验汇总.实验2数据类型和变量的使用一.程序填空,在屏幕上显示一个短句"PROGRAMMINGINJAVAISFUN&qu ...
- java语言读后感_《Java语言程序设计基础篇》读后感锦集
<Java语言程序设计基础篇>是一本由梁著作,机械工业出版社出版的平装图书,本书定价:58.00元,页数:500,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助. <Jav ...
- java语言产生_在java语言中产生正确的行为
知道java里绑定的所有方法都通过后期绑定具有多形性以后,就可以相应地编写自己的代码,令其与基础类沟通.此时,所有的衍生类都保证能用相同的代码正常地工作.或者换用另一种方法,我们可以"将一条 ...
- 电大java语言程序设计_国家开放大学电大Java语言程序设计形考任务1答案
标准答案1:JDK 标准答案2:字节码 标准答案3:Android 标准答案4:javac.exe 标准答案5:num_green 标准答案6:num_blue 标准答案7:错误,变量声明错误 标准答 ...
- 【详解】Java语言的特点以及Java语言与C/C++的比较
文章目录 一.Java语言的特点 1.跨平台性/可移植性 2.面向对象 3.简单性 4.分布性 5.健壮性 6.安全性 7.解释型 8.多线程 二.Java与C/C++的区别 1.指针 2.多重继承 ...
- java 杭州专卖店_杭州JAVA哪家有名气
针对零基础学习的人,从对计算机操作等知识的了解,延伸到Java语言的发展与开发工具的使用上.主要是让你知道怎样执行计算机命令,认识Java这门语言,感受编程语言Java怎么开发程序. 1)计算机基础 ...
- Java语言,什么是Java语言?Java的版本。
Java简介: Java是一门高级的面向对象程序设计语言.使用Java语言程序时可以跨平台的,从PC机到手持电话.Java程序可以在任何计算机,操作系统以及支持Java的硬件设备上运行. 什么是Jav ...
- java楼盘管理系统_基于Java的楼盘销售管理系统的设计与实现
科技信息SCIENCE & TECHNOLOGY INFORMATION2010 年 第 33 期 (上接第 456 页)3.3.1 在保卫目标上空 30-50m 的高度上,配置一定数量的球载 ...
- java程序设计试题_《Java语言程序设计》期末考试模拟试题——填空题和编程题...
一.根据题意,填写出空格中的内容 Java平台包括三个技术方向,其中J2ME代表____________.J2SE代表___________.J2EE代表____________.2.面向对象的四大概 ...
- 计算机java语言答案_【计算机二级Java语言】卷019
选择题 公共知识 [1]下列叙述中正确的是 [A]算法的时间复杂度与计算机的运行速度有关 [B]算法的时间复杂度与运行算法时特定的输入有关 [C]算法的时间复杂度与算法程序中的语句条数成正比 [D]算 ...
最新文章
- 安装华为T2000软件,无法初始化MS SQL 2000问题解决办法
- wxWidgets:wxScrollWinEvent类用法
- SAP gateway里一个控制缓存行为的开关 User parameter /UI2/PAGE_CACHE_OFF
- 支付宝 .NET SDK 报错:RSA签名遭遇异常,请检查私钥格式是否正确。
- UVA 116——Unidirectional TSP
- pdf各种处理 PDF 的实用代码:PyPDF2、PDFMiner、pdfplumber
- binder-swagger-java v0.5.0,Swagger API 框架
- TP5.1 查询数据库中上一条和下一条记录
- python代码设计测试用例_[CP_01] Python循环结构案例:模拟银行存取款业务,设计执行测试用例...
- vue-router路由懒加载(解决vue项目首次加载慢)
- 产品开发的组织架构和开发管理
- Linux之进程通信20160720
- 伯克利的云计算报告(中)
- 如何在论坛里提高自己的从业水平
- curl测试post请求
- 汽车维修企业管理【5】
- 数学建模——国赛写作模板篇
- 小程序UI框架推荐:Vant让你优雅的飞
- python正整数平方根_Python3算法之四:x的平方根
- 关于修复msvcp110.dll丢失的问题
热门文章
- Generalized Focal Loss
- 简单 Quartz定时器使用 入门
- emv交易流程介绍_EMV交易指标简介
- 【物联网毕设基础】NBIOT 窄带物联网
- 地理空间分析中的常用python操作
- iphone手机投射到电脑的过程详解
- iOS Presenting view controllers on detached view controllers is discouraged
- Warning: Attempt to present * on * which is already presenting *
- Js 实现十六进制颜色值和RGB颜色值转换整理
- duilib设置透明窗口_Facebook-duilib 仿 半透明登陆窗口, 简单示例程序,模仿 实现 。 DirextX 240万源代码下载- www.pudn.com...