当前位置: 首页 > news >正文

VBA 实现outlook 当邮件设置category: red 即触发自动创建jira issue

1. 打开: Outlook VBA(Visual Basic for Applications)

方法一: 在邮件直接搜索:Visual Basic editor

方法二: File -> Options -> Customize Ribbon-> 打钩 如下图:

2.设置运行VBA 脚本:

File -> Options -> Trust center -> Trust center Settings->Macro Settings ->打钩Enable all macros  如下图:

3.在打开的VBA中ThisOutlookSession文件中添加如下代码:

Public WithEvents objExplorer As Outlook.Explorer
Public WithEvents objInspectors As Outlook.Inspectors
Public WithEvents objMail As Outlook.MailItemPrivate Sub Application_Startup()Set objExplorer = Outlook.Application.ActiveExplorerSet objInspectors = Outlook.Application.Inspectors
End SubPrivate Sub objExplorer_Activate()On Error Resume NextSet objMail = objExplorer.Selection.Item(1)
End SubPrivate Sub objInspectors_NewInspector(ByVal Inspector As Inspector)Set objMail = Inspector.CurrentItem
End SubPrivate Sub objMail_PropertyChange(ByVal Name As String)Dim url As StringDim jsonBody As StringDim userName As StringDim apiToken As StringDim responseText As StringDim authCode As StringDim statusCode As IntegerIf Name = "Categories" ThenIf objMail.Categories = "Red Category" ThenMsgBox "You set the category as red for '" & objMail.Subject & "'"Debug.Print "objMail.Body:" & objMail.Bodyurl = "https://{jiraurl}/rest/api/2/issue"'url = "https://{jiraurl}/rest/api/2/issue/issueNumber"userName = "userName@ehealth.com"apiToken = "yourToken"jsonBody = "{" & _"""fields"": {" & _"""project"": {""id"": ""10000""}," & _"""summary"": """ & objMail.Subject & """," & _"""description"": """ & objMail.Body & """," & _"""issuetype"": {""name"": ""Maintenance""}," & _"""customfield_10029"": {""value"": ""2 - High""}," & _"""customfield_10063"": {""value"": ""*All test*""}," & _"""customfield_10030"": {""value"": ""PROD""}," & _"""customfield_10187"": {""value"": ""test""}," & _"""assignee"": {""accountId"": ""testid""}" & _"}}"Debug.Print "jsonBody:" & jsonBody'authCode = "Basic " & Base64Encode(userName & ":" & apiToken)authCode = "Basic test" & "RC1JZDZPX1FoeHFwZ0V1akNMX2NqOF83d29BMVUxX2praUJURkxSMFA5R0NadlJzaGJpaE01" & "NHRNVFNyTlQxcFFEc1BScTdqdko1bVdEWHdkWS1EZnF4NnMzSFdLTGQzZVJiTThPaUdaU2Vf" & "OHNWWG5yNWdTa0dmWk1DUG43b2dqNXJheVRYazhraDRDbWRDSjFobkR5az1FQTA1Nzcx" & "OQ=="Debug.Print "authCode:" & authCodeDim objHTTP As ObjectSet objHTTP = CreateObject("MSXML2.ServerXMLHTTP")'objHTTP.Open "GET", url, False'objHTTP.setRequestHeader "Accept", "application/json"'objHTTP.setRequestHeader "Content-Type", "application/json"'objHTTP.setRequestHeader "Authorization", authCode'objHTTP.SendobjHTTP.Open "POST", url, FalseobjHTTP.setRequestHeader "Accept", "application/json"objHTTP.setRequestHeader "Content-Type", "application/json"objHTTP.setRequestHeader "Authorization", authCodeobjHTTP.Send jsonBodyresponseText = objHTTP.responseTextstatusCode = objHTTP.StatusDebug.Print "Response Status Code: " & statusCodeDebug.Print "Response Body : " & responseTextMsgBox "Response Status Code: " & statusCode & vbCrLf & "Response Body : " & responseTextEnd IfEnd If
End Sub
Function Base64Encode(ByVal sText As String) As StringDim arrData() As BytearrData = StrConv(sText, vbFromUnicode)Dim objXML As ObjectSet objXML = CreateObject("MSXML2.DOMDocument")Dim objNode As ObjectSet objNode = objXML.createElement("b64")objNode.DataType = "bin.base64"objNode.nodeTypedValue = arrDataBase64Encode = objNode.textSet objNode = NothingSet objXML = Nothing
End Function

如下图:

4.可以点击上图View->Immediate Windows 查看debug的控制台输出,方便调试代码

http://www.lryc.cn/news/337530.html

相关文章:

  • 办公软件巨头CCED、WPS迎来新挑战,新款办公软件已形成普及之势
  • 架构设计-订单系统之订单系统的架构进化
  • 性能升级,INDEMIND机器人AI Kit助力产业再蜕变
  • 2024年妈妈杯数学建模C题思路分析-物流网络分拣中心货量预测及人员排班
  • prometheus\skywalking\splunk功能的区别
  • Harmony鸿蒙南向驱动开发-SPI接口使用
  • 芒果YOLOv7改进96:检测头篇DynamicHead动态检测头:即插即用|DynamicHead检测头,尺度感知、空间感知、任务感知
  • 独一无二:探索单例模式在现代编程中的奥秘与实践
  • centos7 安装 rabbitmq3.8.5
  • 利用SOCKS5代理和代理IP提升网络安全与匿名性
  • C++list模拟实现
  • 设计模式(22):解释器模式
  • kubernetes docker版本安装测试
  • 策略模式:灵活调整算法的设计精髓
  • [INS-30014]无法检查指定的位置是否位于 CFS 上
  • 机器学习和深度学习 -- 李宏毅(笔记与个人理解)Day 13
  • [Python图像识别] 五十二.水书图像识别 (2)基于机器学习的濒危水书古文字识别研究
  • Jmeter针对多种响应断言的判断
  • Harmony鸿蒙南向驱动开发-Regulator接口使用
  • 【opencv】示例-grabcut.cpp 使用OpenCV库的GrabCut算法进行图像分割
  • GEE数据集——巴基斯坦国家级土壤侵蚀数据集(2005 年和 2015 年)
  • 服务器代理
  • 【SGDR】《SGDR:Stochastic Gradient Descent with Warm Restarts》
  • 如何将arping以及所有依赖打包安装到另外一台离线ubuntu机器
  • mac上如何安装python3
  • Java 那些诗一般的 数据类型 (下篇)
  • WEB3.0:互联网的下一阶段
  • Fastgpt配合chatglm+m3e或ollama+m3e搭建个人知识库
  • 如何使用选择器精确地控制网页中每一个元素的样式?
  • 各个微前端框架的优劣浅谈