发送钉钉、邮件、手机信息

devtools/2024/9/22 9:49:19/

其中下列部分用到了Hutool中的工具,可先导入Hutool依赖

 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>

钉钉

 public void sendDingDing(PoMaster poMaster){String url="钉钉机器人的opai";JSONObject js = new JSONObject();js.set("msgtype","markdown");js.set("markdown",new JSONObject().set("title"," 益达律师所邀请您审核采购单").set("text","益达律师所邀您查看编号:"+poMaster.getId()+"的订单 ![screenshot](https://pic.3gbizhi.com/uploads/20231129/0750e85fa5fd97e19dfb879770d7f7db.jpg)\n"));//js.set("at",new JSONObject().set("atMobiles",new JSONArray().set("tel"))); 按照手机号发送js.set("at",new JSONObject().set("isAtAll",true));String s = JSONUtil.toJsonStr(js);HttpRequest.post(url).body(s).execute().body();}

邮件

 public Integer sendEmail(String email) {MailAccount account = new MailAccount();account.setHost("smtp.aliyun.com");account.setPort(25);account.setAuth(true);account.setFrom("your Email");account.setUser("your Email");account.setPass("your Password");int code = RandomUtil.randomInt(1000, 10000);String url="https://baike.baidu.com/item/%E5%A4%A9%E4%B8%8A%E4%BA%BA%E9%97%B4/11074119";String content = "天上人间提醒您,您的验证码为:"+code+"请勿给他人观看及使用🥰🥰";TelMap.put(email,code);MailUtil.send(account, CollUtil.newArrayList(email), "天上人间", content, false);return 0;}//发送带样式Email
ublic void sendEmail(PoMaster poMaster){MailAccount account = new MailAccount();account.setHost("smtp.aliyun.com");account.setPort(25);account.setAuth(true);account.setFrom("your Email");account.setUser("your Email");account.setPass("your Password");StringBuilder body = new StringBuilder();body.append(StrUtil.format("<h1>采购单:{},总金额:{}, 需要您的审核🥰🥰</h1>", poMaster.getId(), poMaster.getTotalPrice()));body.append(" <table border='1'> ");body.append(" <tr> ");body.append(" <td> ");body.append("商品名称");body.append(" </td>");body.append(" <td> ");body.append("采购数量");body.append(" </td>");body.append(" <td> ");body.append("采购单价");body.append(" </td>");body.append(" <td> ");body.append(" 商品金额");body.append(" </td>");body.append(" </tr> ");poMaster.getItems().forEach(item -> {body.append(" <tr> ");body.append(" <td> ");body.append(StrUtil.format("<a href='http://localhost:8080/#/po/detail?id={}' target='_blank'>{}</a>", item.getId(), item.getProductName()));body.append(" </td>");body.append(" <td> ");body.append(item.getQty());body.append(" </td>");body.append(" <td> ");body.append("¥"+item.getPrice());body.append(" </td>");body.append(" <td> ");body.append("¥"+item.getPrice().multiply(new BigDecimal(item.getQty())));body.append(" </td>");body.append(" </tr> ");});body.append(" </table>");MailUtil.send(account,"需要发送的Email","天上人间提醒您请对采购单审核-"+ poMaster.getId(),body.toString(),true);}

手机信息

public Integer sendTel(String tel) {//发送信息调用地址String url="https://dfsns.market.alicloudapi.com/data/send_sms";//请求放法String method = "POST";//我的appcode号String appcode = "eb666bd7a6474c37aee78f8fe886a763";int code = RandomUtil.randomInt(1000, 10000);TelMap.put(tel,code);String result = HttpRequest.post(url).header("Authorization", "APPCODE "+appcode)//头信息,多个头信息多次调用此方法即可.body("content=code:"+code+"&template_id=TPL_0000&phone_number="+tel).execute().body();JSONObject entries = JSONUtil.parseObj(result);if(!entries.get("status").equals("OK")){throw new BizException(401,"验证码发送失败");}return 0;}

http://www.ppmy.cn/devtools/8126.html

相关文章

20个npm常用命令及详解

作为JavaScript开发者&#xff0c;npm&#xff08;Node Package Manager&#xff09;是我们每天都会使用的工具。以下是20个常用的npm命令&#xff0c;它们对于高效地管理和发布你的Node.js项目至关重要。下面将列出20个常用的npm命令&#xff0c;希望对大家开发学习有所帮助。…

力扣283. 移动零

Problem: 283. 移动零 文章目录 题目描述思路复杂度Code 题目描述 思路 1.定义一个int类型变量index初始化为0&#xff1b; 2.遍历nums当当前的元素nums[i]不为0时使nums[i]赋值给nums[index]&#xff1b; 3.从index开始将nums中置对应位置的元素设为0&#xff1b; 复杂度 时间…

C# HL7消息体

文章目录 简介HL7消息体HL7发送新增 简介 本章主要以HL7消息格式运用Socket进行消息数据传递&#xff0c;下列以新增消息为案例&#xff1a; HL7消息体 HL7发送新增 新增方法&#xff0c;提供前端进行调用&#xff0c;传递 List<技术医嘱_Model> 实体数据类 public …

Python 全栈安全(一)

原文&#xff1a;annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 序言 多年前&#xff0c;我在亚马逊搜索了一本基于 Python 的应用程序安全书。我以为会有多本书可供选择。已经有了很多其他主题的 Pyt…

JMeter--定时器--同步定时器

一、集合点 集合点是测试脚本中的一个标记&#xff0c;当每个虚拟用户执行到标记处时&#xff0c;会停留在标记处等待其他的虚拟用户&#xff0c;当达到预期设置的并发数时&#xff0c;标记处的所有用户同时启动执行后续的请求&#xff1b; 集合点会产生瞬间高并发&#xff0c;…

arm版Linux下安装大数据集群各种组件

背景&#xff1a;由于本人是用的Macbookpro m2来进行开发的&#xff0c;很多环境和Intel芯片的都不一样&#xff0c;期间安装各种软件遇到各种问题&#xff0c;为了以后不走之前的老路&#xff0c;现记录各种软件的安装步骤。 系统安装组件说明 序号组件名称组件版本1jdkjdk-…

「sentinel」流量控制组件的应用

「sentinel」流量控制组件的应用 Sentinel版本QPS 一、初识Sentinel1、Sentinel2、Sentinel 和 Hystrix对比3、雪崩问题 二、环境搭建1、下载安装Sentinel2、微服务整合Sentinel 三、流量控制1、簇点链路2、流控设置3、流控模式直接关联链路 4、流控效果流控效果解释 四、热点限…

SpringBoot3 + Vue3 + Element-Plus + TS 实现动态二级菜单级联选择器

SpringBoot3 Vue3 Element-Plus TS 实现动态二级菜单选择器 1、效果展示1.1 点击效果1.2 选择效果1.3 返回值1.4 模拟后端返回数据 2、前端代码2.1 UnusedList.vue2.2 goodsType.ts2.3 http.ts 3、后端代码3.1 GoodsCategoryController.java3.2 GoodsCategoryService.java3.…