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

ops/2024/12/23 7:29:13/

其中下列部分用到了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/ops/7933.html

相关文章

PyTorch深度学习入门到精通指南AI写作一键生成

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

【Redis(7)】缓存技术的挑战及设计方案

缓存是计算机科学中用于提升系统性能的一种关键技术。在本文中&#xff0c;我们将针对缓存的基本概念、可能遇到的问题、优缺点、常见策略以及设计一个高可用、高性能、高并发缓存方案的思路进行探讨。 缓存是什么&#xff1f; 缓存是一种数据存储实践&#xff0c;它将频繁访问…

OpenXR手部追踪实现详解

在虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;应用中&#xff0c;手部追踪技术是提高用户交互自然性的关键技术之一。本文将详细介绍如何使用OpenXR API实现手部追踪功能&#xff0c;包括系统属性的查询、手部追踪器的创建和手部关节的定位。 开…

【已解决】电脑设置notepad++默认打开txt

1、以管理员的方式打开notepad 步骤&#xff1a;打开设置 -> 首选项 -> 文件关联 2、 设置Notepad默认打开 按照以下步骤将Notepad设置为默认打开.txt文件&#xff1a; 右键单击任何一个.txt文件。选择“属性”。在“常规”选项卡中&#xff0c;找到“打开方式”&#…

NX二次开发UF_MTX(矩阵运算)常用函数

目录 一、概述 二、函数的介绍 2.1 UF_MTX3_copy&#xff08;复制原来矩阵&#xff09; 2.2 UF_MTX3_determinant&#xff08;计算矩阵的行列式&#xff09; 2.3 UF_MTX3_identity&#xff08;单位矩阵&#xff09; 2.4 UF_MTX3_initialize&#xff08;可以根据X、Y方向向…

工程师每日刷题-7

(1)final和override的作用&#xff1f;final为什么能提高代码执行效率&#xff1f; override&#xff1a;保证在派生类中声明的重载函数&#xff0c;与基类的虚函数有相同的签名&#xff0c;作用就是用于编译期代码检查。 final&#xff1a;阻止类的进一步派生和虚函数的进一步…

温湿度LCD显示并上传服务器

项目需求 通过温湿度传感器将值传到LCD1602&#xff0c;并实时通过蓝牙透传到手机。 硬件介绍 温湿度传感器 DHT11温湿度传感器 DHT11_温湿度传感器数据格式-CSDN博客 LCD1602LCD1602-CSDN博客 HC-01 继电器模块 硬件接线 LCD1602 D0~D7 --> A0~A7VDD, A --> 5v…

利用Sentinel解决雪崩问题(一)流量控制

1、解决雪崩问题的常见方式有四种: 超时处理:设定超时时间&#xff0c;请求超过一定时间没有响应就返回错误信息&#xff0c;不会无休止等待;舱壁模式:限定每个业务能使用的线程数&#xff0c;避免耗尽整个tomcat的资源&#xff0c;因此也叫线程隔离;熔断降级:由断路器统计业务…