在 Outlook 中通过 VBScript 规则调用 Slack API

2024-01-11

我正在尝试在 Outlook 中运行一条规则,该规则运行一个 VBScript,该脚本调用 Slack.com Web 服务并使用特定消息更新我的 Slack 频道之一。当前状态——我只想让它发布一条静态消息。未来我将尝试使用 RegEx 解析电子邮件中的某些数据并将其发布到我的 Slack 频道。

从弗兰肯斯坦在网上找到的一些脚本中,这就是我所拥有的(但不太有效)希望有人可以提供帮助......

    Function ProcessSend()
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.4.0")
    Set oXMLDoc = CreateObject("MSXML2.DOMDocument")

    strEnvelope = "payload={""channel"": ""#edt-error"", ""text"": ""This is posted to #edt-error.""}"

    Call oXMLHTTP.Open("POST", "https://custom-slack-url-for-service-goes-here.com" & posFirm, False)
    Call oXMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    Call oXMLHTTP.Send(strEnvelope)

    Dim szResponse: szResponse = oXMLHTTP.responseText
    Call oXMLDoc.LoadXML(szResponse)

    If (oXMLDoc.parseError.ErrorCode <> 0) Then
        'call msgbox("ERROR")
        response = oXMLHTTP.responseText&" "&oXMLDoc.parseError.reason
        'call msgbox(oXMLDoc.parseError.reason)
    Else
        response = oXMLDoc.getElementsByTagName("string")(0).ChildNodes(0).Text
    End If
End Sub

所以我自己解决了这个问题,但想发布更多细节。

要求 :当我收到一封电子邮件并触发 Outlook 规则(来自 X 的消息并发送给 Y)时,我想拨打 Slack 并使用自定义消息更新我的一个频道。

解决方案 :首先,您需要导航到 C 驱动器上 Microsoft Office 文件夹中的 selfcert.exe,创建新的自签名证书,然后将该证书添加到 Outlook 中的受信任发布者中。完成后,我通过按 Alt+F11 从 Outlook 打开 Visual Basic,并在“ThisOutlookSession”项目中创建以下脚本。

Sub ProcessSend(Item As Outlook.MailItem)
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
    Set oXMLDoc = CreateObject("MSXML2.DOMDocument")

    strEnvelope = "payload={""channel"": ""#edt-error"", ""text"": ""This is posted to #edt-error.""}"

    Call oXMLHTTP.Open("POST", "https://INSERT-YOUR-SERVICE-URL-HERE" & posFirm, False)
    Call oXMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    Call oXMLHTTP.Send(strEnvelope)

    Dim szResponse: szResponse = oXMLHTTP.responseText
    Call oXMLDoc.LoadXML(szResponse)
End Sub

最后,我创建了一个规则来查找适当的参数,然后执行“运行此脚本”操作。当您点击规则中的“脚本”名称时,会弹出一个窗口,您可以选择上面已经创建的脚本。

希望这对某人有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Outlook 中通过 VBScript 规则调用 Slack API 的相关文章

随机推荐

  • Android Espresso:如何检查 Toast 消息是否未显示?

    我现在正在进行功能测试 其中一个测试我必须测试是否未显示 toast 消息 考虑到这是我用来检查是否显示 toast 消息的代码 此代码有效 onView withText R string my toast message inRoot
  • Orchard Migration Add_Index 到现有表以使其成为唯一约束

    看着Q向列组合添加唯一约束的迁移 https stackoverflow com questions 3370271 a migration to add unique constraint to a combination of colu
  • XML 架构:根元素

    下面的帖子询问如何指示一个元素是根元素 XML 模式 是否可以使用 Schema 在 XML 文档中定义根元素 https stackoverflow com questions 4254226 is it possible to defi
  • SQL在负载测试中拒绝连接

    我正在我的系统上运行负载测试 在一定程度的负载下 我开始在日志中收到 SQL 错误 System Data SqlClient SqlException 0x80131904 建立与 SQL Server 的连接时发生与网络相关或特定于实例
  • 如何通过 ssh 在 PHP 中执行远程命令?

    我正在尝试通过 ssh 从 php 脚本内执行远程命令 并且我希望将命令 stdout 和 stderr 的输出流式传输到原始主机 我知道在 Perl 和 Ruby 中这是可能的 我在 php ini 中找不到任何这样的例子 Code ip
  • Aapt 无法正常工作 - 无法在新项目上生成 R ID

    我正在使用 Jenkins 运行无头 Ubuntu 服务器 用于 Android 构建 主要用于测试 多个物理设备始终处于连接状态 一周前它开始表现得很奇怪 不可能在这台机器上成功构建 起初我以为可能是代码 然后是 pom xml 文件 M
  • 查看服务器上运行的所有 SQL 查询的列表

    我可以运行一个查询来显示特定数据库的日期范围内在服务器上运行的所有查询吗 我需要找出哪些参数值传递给了上周执行的存储过程 No 做到这一点的唯一方法是建立监控流程提前 监控数据库 例如通过 SQL Profiler 会对性能产生影响 因此在
  • 如何禁用 eslint 上的错误 (prettier/prettier)?

    在编码时 我没有使用 eslint 现在我安装了它 它让我的编辑器充满了更漂亮 更漂亮的错误 这些错误似乎并没有让我的代码更漂亮 我正在寻找一种方法来解决这个问题 prettierrc js module exports bracketSp
  • iOS 设备作为网络服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我看到App Store上有几个应用程序允许其他计算机与iPhone iPad设备建立http连接来传输文件 看起来 iOS 设备上正
  • 选择超过总值百分比的行子集

    我有一个包含客户 用户和收入的表格 如下所示 实际上有数千条记录 Customer User Revenue 001 James 500 002 James 750 003 James 450 004 Sarah 100 005 Sarah
  • OpenCSV 在解析时抛出错误捕获 CSV 标头

    我正在尝试读取从前端上传的 csv 文件作为多部分文件 上传的 CSV 文件绝不会为空 Reader reader new BufferedReader new InputStreamReader request getFile getIn
  • Android Wear 模拟器显示 Google Play 服务错误 SERVICE_VERSION_UPDATE_REQUIRED

    我正在 Wear Emulator 上测试 Android Wear 应用程序并使用 Eclipse 进行开发 在wear app中 onCreate中有如下代码 mGoogleApiClient new GoogleApiClient B
  • 使用 Azure SDK for Node.js 中的 BlobService.getBlobURL() 生成 Azure 共享访问签名

    我正在尝试使用共享访问签名生成指向 blob 的 urlBlobService getBlobURL 在我本地计算机上 Node js 上的 Azure 库中 但是 当我尝试通过生成的 URL 检索 blob 时 我收到一条身份验证错误 指
  • 如何在 Google 电子表格中使用 ImportRange 函数强制重新计算单元格?

    我有一个电子表格目标 它使用 ImportRange 从另一个电子表格源获取一些数据 如 A6 query ImportRange mykey Weekly B BI CONCATENATE select WHERE Col1 B3 0 s
  • 带 * 的 Java import 语句不拾取类

    免责声明 我是 Java 新手 而且我已经阅读了相关的那么问题 https stackoverflow com questions 14897448 use of in import statement in java 我有以下代码 imp
  • SwiftUI:输入无效时文本字段摇动动画

    我想在用户按下 保存 按钮并且输入无效时创建摇动动画 我的第一个方法是这样的 为了简化 我删除了修饰符 而不是这种情况下的相关属性 View struct CreateDeckView View StateObject var viewMo
  • TypeScript 自定义事件监听器

    我认为我在这里的理解中遗漏了一些相当重要的东西 所以也许一点解释也会非常有帮助 我有一堂课 如下 class Entity protected pos number 0 0 public setPos x number y number t
  • 更改 Windows 窗体应用程序中的默认图标

    我需要更改我正在开发的应用程序中的图标 但只需从项目属性选项卡中浏览其他图标 gt 应用 gt Icon 它没有获取存储在桌面上的图标 正确的做法是什么 您在桌面上看到的图标不是图标文件 它们要么是可执行文件 exe或任何应用程序的快捷方式
  • 如何在页面加载期间从 Symfony2 获取学说查询统计信息

    我想在页面的页脚添加一些统计数据 类似于 184ms 6 10ms 其中184ms是页面生成时间 6是查询计数 10是数据库查询所花费的时间 我可以计算出页面生成时间 但如何获得不符合理论的数据库统计信息 当然 这是在应用程序环境中运行时的
  • 在 Outlook 中通过 VBScript 规则调用 Slack API

    我正在尝试在 Outlook 中运行一条规则 该规则运行一个 VBScript 该脚本调用 Slack com Web 服务并使用特定消息更新我的 Slack 频道之一 当前状态 我只想让它发布一条静态消息 未来我将尝试使用 RegEx 解