首页 > 解决方案 > Outlook Web 加载项的自定义属性的最大大小限制

问题描述

我正在开发一个 Outlook Web 插件。对于部分功能,我们需要将一些自定义属性与会议项目一起存储。

似乎所有自定义属性总共有 2500 个字符的硬限制,我通过一些试验和错误发现,并且通过挖掘插件使用的 JS 文件并找到这个函数:

   r.CustomProperties.prototype.saveAsync = function() {
        for (var i = [], t = 0; t < arguments.length; ++t)
            i[t] = arguments[t];
        var f = 2500;
        if (window.JSON.stringify(this._data$p$0).length > f)
            throw Error.argument();
        var n = r.CommonParameters.parse(i, !1, !0);
        if (window.OSF.DDA.OutlookAppOm._instance$p.shouldRunNewCode(r.ShouldRunNewCodeForFlags.saveCustomProperties))
            window.OSF.DDA.OutlookAppOm._instance$p._standardInvokeHostMethod$i$0(4, {
                customProperties: this._data$p$0
            }, null, n._asyncContext$p$0, n._callback$p$0);
        else {
            var u = new r.SaveDictionaryRequest(n._callback$p$0,n._asyncContext$p$0);
            u._sendRequest$i$0(4, "SaveCustomProperties", {
                customProperties: this._data$p$0
            })
        }
    }

有没有人找到另一种方法可以让我们保存超过 2500 个字符?如果我们可以将这个限制提高四倍,那将是正确的;由于我们存储的数据的敏感性,如果我们可以避免它,我们宁愿不引入另一个数据库(而是依赖于我们已经拥有的围绕 Microsoft Exchange 的安全性)。

标签: office-jsoutlook-web-addins

解决方案


这是一个有趣的发现,但是限制是在 JS 函数中设置的,它公开了设置/保存自定义属性的功能。我没有在文档中资助任何提及此限制的内容。Microsoft 应更新文档以指示此限制。

如果您需要在邮件中存储更多信息,作为一种解决方法,您可以使用 EWS 请求(更多信息请参见“从 Outlook 加载项调用 Web 服务”)或 REST(更多信息请参见“ Outlook 扩展属性 REST API 参考”)调用. 您将能够在没有此限制的情况下设置自定义/扩展属性,特别是如果您使用“Binaty”类型。


推荐阅读