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

Call Slack API via VBScript Rule in Outlook

我正在尝试 运行 Outlook 中的一条规则,该规则 运行 是一个调用 Slack.com 网络服务并使用特定消息更新我的一个 Slack 频道的 VBScript。当前状态——我只希望它成为 post 一条静态消息。未来状态我将尝试使用 RegEx 从电子邮件中解析出某些数据并将其 post 发送到我的 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

所以我自己解决了这个问题,但想要 post 更多详细信息。

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

解决方案: 首先,您需要导航到 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

最后,我创建了一个规则来查找合适的参数,然后执行 "Run this script" 操作。当您点击规则中的 "script" 名称时,将弹出一个 window,您可以 select 您已经创建的上述脚本。

希望对大家有所帮助!