javascript - 通过 Javascript 和 EWS 在 Outlook 缓存模式下设置 HTML
问题描述
我的工作 Outlook 环境正在从在线(连续连接)更改为缓存模式,这破坏了 Outlook 插件的桌面组件,该插件旨在保存并将草稿电子邮件转发到内部安全检查。
我的原始代码将异步保存草稿,然后使用 Id 并更改密钥然后转发它。在缓存模式下,在帐户与 Exchange 同步之前没有 ID。
现在损坏的代码(在缓存模式下不起作用)
//Save current item as draft
mailForward.SaveDraftIfNecessary = function SaveDraftIfNecessary() {
if (_item_id == null || _item_id == undefined) {
Office.context.mailbox.item.saveAsync(function (asyncResult) {
if (asyncResult.error) {
app.showNotification(_appName, "Error: " + asyncResult.error.message);
}
else {
_item_id = asyncResult.value;
}
});
}
};
我已经能够编写可以复制邮件并发送它的代码,但是我需要能够将草稿正文插入到新的电子邮件正文中,但它不接受它。它不适用于文本或 HTML。
获取正文类型和文本的代码如下:
item.body.getTypeAsync(
function (asyncResultGet) {
if (asyncResultGet.status === Office.AsyncResultStatus.Failed) {
statusUpdate("icon16", asyncResultGet.error.message);
stopSpinner();
}
else {
bodyType = asyncResultGet.value;
item.body.getAsync(bodyType,
function (asyncResultGet) {
if (asyncResultGet.status === Office.AsyncResultStatus.Failed) {
statusUpdate("icon16", asyncResultGet.error.message);
stopSpinner();
}
else {
bodyText = asyncResultGet.value;
我试图用来插入正文的 SOAP。我也尝试过 t:NewBodyContent 而不是 t:Body:
' <t:Message>' +
' <t:Subject>' + _subject + '</t:Subject>' +
' <t:Body BodyType="'+ _bodyType +'">' + _bodyText + '</t:Body>' +
' <t:ToRecipients>' + _adddressesSoap + '</t:ToRecipients>' +
' </t:Message>' +
解决方案
我的问题是编码。我有一个可能是问题的暗示,但直到我找到这个链接才测试它:
我使用的代码是这样的:
var htmlEncode = function htmlEncode(s) {
var ntable = {
"&": "amp",
"<": "lt",
">": "gt",
"\"": "quot"
};
s = s.replace(/[&<>"]/g, function (ch) {
return "&" + ntable[ch] + ";";
});
s = s.replace(/[^ -\x7e]/g, function (ch) {
return "&#" + ch.charCodeAt(0).toString() + ";";
});
return s;
};
推荐阅读
- python - 硒找不到元素
- sql - 查找与您输入的日期匹配的所有日期的最佳方法是什么?
- javascript - 如何用 JavaScript 重构 json 对象
- php - PHP:在带有反斜杠的双引号内使用变量
- git - 尽管 core.autocrlf=true,Git 在 Windows 上仅以 LF 行结尾签出特定文件
- javascript - 设计一个提供无事件数据的 VueJS 组件
- logging - 在 bigquery 中创建谷歌云日志接收器的问题
- javascript - 使用 javascript 在 html 中添加 SVG 的最佳方法是什么?
- apollo-server - 如何使用 apollo-server(gRPC,而不是 REST)实现部分查询缓存
- unit-testing - 有没有办法构建包含测试文档字符串的 Rust 文档?