【问题标题】:Outlook Javascript API - Add in to replace regex matches with linkOutlook Javascript API - 添加以用链接替换正则表达式匹配
【发布时间】:2020-08-27 16:44:09
【问题描述】:

我想创建一个与 Outlook 2016 兼容的加载项,它只是将正则表达式匹配替换为超链接。我的主要问题是我不知道如何访问消息正文。有没有我可以查看的示例项目?

这是我的 manifest.xml

        <Rule xsi:type="RuleCollection" Mode="And">
          <Rule xsi:type="ItemIs" ItemType="Message" />
          <Rule xsi:type="ItemHasRegularExpressionMatch" RegExName="OrderNumber" RegExValue="N\d{5}" PropertyName="BodyAsPlaintext"/>
        </Rule>

这是我的 javascript

        export async function run() {
Office.context.mailbox.item.body.getAsync(
    "text",
    { asyncContext: "This is passed to the callback" },
    function callback(result) {
    const r = /N\d{5}/;

        var allMatches = result.value.match(r);

        if (allMatches) {
          JSON.stringify(allMatches, null, 2);
        } else {
          //allMatches = "All matches was null";
        }    
        for (var i = allMatches.length - 1; i >= 0; i--) {
            document.getElementById("item-subject").innerHTML += "<b>Order ID's:</b> <br/>" + "<a href='https://www.test.com.au/admin/order/vieworder?id=" + allMatches[i] + "'>" + allMatches[i] + "</a><br>";
        }

       // document.getElementById("item-subject").innerHTML = "<b>Order ID's:</b> <br/>" + "<a href='https://www.test.com/admin/order/vieworder?id='" + allMatches + ">" + allMatches + "</a>";
    });

主要是可行的解决方案

【问题讨论】:

    标签: outlook office365 office-js outlook-addin


    【解决方案1】:

    这对你有用吗,你似乎可以像这样访问它:

    Office.context.mailbox.item.body.getAsync('text', function bodyCallback(result) {
      console.log('value:', result.value)
    });
    
    

    https://docs.microsoft.com/en-us/javascript/api/outlook/office.body?view=outlook-js-preview

    【讨论】:

    • 我现在收到邮件正文,谢谢。但是下一张海报(Outlook Add-ins Team MSFT)通知我,无法在 Outlook 中就地编辑邮件正文。你知道有什么办法吗?我希望与几乎所有版本的 Outlook 2016(Win 和 Mac)及更高版本兼容,如果可能的话,包括移动应用程序。
    【解决方案2】:

    如果这个问题是关于 Web 插件的:

    在您撰写消息时,mountaindrew 的评论是正确的。有两种方法既可以获取正文数据,也可以使用链接的问题设置正文数据。

    当您阅读收到的消息时,无法就地修改正文。您可以使用 Office.context.mailbox.item.body.getAsync() 获取正文,并打开一个任务窗格,其中包含在任务窗格中修改的内容作为解决方法。

    如果您尝试使用 COM 加载项执行此操作,您的要求是可能的,但我没有专业知识。 (并且您应该使用适当的标签(取消标记 Web 插件)提出这个问题)

    【讨论】:

    • 我其实是想把收到的消息内容修改到位,只是把订单号文字变成超链接。
    • 目前不支持修改收到的邮件正文,我们在our user-voice page 上跟踪 Outlook 加载项功能请求。请在此处添加您的请求。当我们进行规划过程时,会考虑用户语音的功能请求。
    猜你喜欢
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多