Outlook Web App(Exchange 2013 本地)API 1.2 如何访问电子邮件正文?

2024-02-28

Office.context.mailbox.item.body给出 null 而

Office.context.mailbox.item.body.getAsync()仅适用于JavaScript API 1.3.

有没有办法获取电子邮件正文JavaScript API 1.1/1.2?


是的你可以。实际上,您将使用 Exchange Web 服务检索正文。

正如所解释的here https://stackoverflow.com/questions/35768988/how-to-get-recurrence-data-from-javascript-api-in-office365/35770085#35770085有两种方法可以执行此操作:1) 来自 javascript(客户端应用程序)的 SOAP 请求或 2) 使用 SDK(例如 .NET Exchange Web SDK)的服务器端

对于解决方案 1),您的请求可能类似于以下 js 片段(请注意,我使用了 angular.js 承诺that.$q.defer();但这不是强制性的)

           function getSoapEnvelope(request) {
            // Wrap an Exchange Web Services request in a SOAP envelope.
            var result =
            '<?xml version="1.0" encoding="utf-8"?>' +
            '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
            '               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">' +
            '  <soap:Header>' +
            '     <t:RequestServerVersion Version="Exchange2013"/>' +
            '  </soap:Header>' +
            '  <soap:Body>' +
            request +
            '  </soap:Body>' +
            '</soap:Envelope>';

            return result;
           }



            var getBodyAsync = function () {
            var that =this;
            var deferred = that.$q.defer();

            function getHeadersRequest(id) {
                // Return a GetItem EWS operation request for the headers of the specified item.  
                var result =
             '    <GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">' +
             '      <ItemShape>' +
             '        <t:BaseShape>IdOnly</t:BaseShape>' +
             '        <t:BodyType>HTML</t:BodyType>' +
             '        <t:AdditionalProperties>' +
             '            <t:FieldURI FieldURI="item:Body"/>' +
             '        </t:AdditionalProperties>' +
             '      </ItemShape>' +
             '      <ItemIds><t:ItemId Id="' + id + '"/></ItemIds>' +
             '    </GetItem>';
                return result;
            }
                // Create a local variable that contains the mailbox. 
            var mailbox = Office.context.mailbox;
            var request = getHeadersRequest(mailbox.item.itemId);
            var envelope = getSoapEnvelope(request);

            var callback = function (data) {
                var $data = $(data.value);
                var $body = $("t\\:Body", $data);
                deferred.resolve($body.html());
            }

            mailbox.makeEwsRequestAsync(envelope, callback);
            return deferred.promise;
        };

对于解决方案 2),使用 .NET Exchange SDK

            ExchangeService service = new ExchangeService();
            service.Credentials = new OAuthCredentials(token);
            service.Url = new Uri(ewsUrl);

            PropertyDefinition definition = ItemSchema.NormalizedBody;
            var propertySet = new PropertySet(definition, ItemSchema.Attachments,
                ItemSchema.HasAttachments);
            EmailMessage ewsEmail = EmailMessage.Bind(service, new ItemId(itemId), propertySet);


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

Outlook Web App(Exchange 2013 本地)API 1.2 如何访问电子邮件正文? 的相关文章

  • Office JS API 中发生错误时没有堆栈跟踪信息

    我们在 Application Insights 中收到大量 Office JS API 错误 但它们没有堆栈跟踪 我们拥有的一切 The browser s same origin policy prevents us from gett
  • C# 在 VSTO 加载项中获取正在运行的 Outlook 实例

    我正在尝试在 Excel 加载项中获取 Outlook 应用程序对象 如果有正在运行的 Outlook 实例 它应该得到这一点 如果没有 它应该使用 Outlook 对象模型创建一个 这是我现在的代码 public static Outlo
  • 从 Outlook webaddin 打开 url 时弹出窗口被阻止错误

    当用户单击插件视图中的按钮时 我尝试打开网址 但网络插件抛出错误 我的打开网址的代码 let a document createElement a a setAttribute target blank a setAttribute sty
  • 以编程方式为 Outlook 2010 创建自定义通讯簿

    我想创建一个自定义联系人列表 或地址簿 因为它被称为 这样在 Outlook 中 用户将查看 建议的联系人 联系人 等 然后是 自定义联系人 我去尝试了以下方法 int count this Application GetNamespace
  • Office 365、Outlook 加载项图标不更新 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 开发 Office 365 Outlook 插件 更改了加载项图标 基本上只是用新图标替换了旧图标 图标具有相同的名称 图标在 OWA 上显示正常 但在 Outlook 2016 加
  • 消息日期属性的架构名称

    我试图通过 PropertyAccessor 读取和写入消息日期 发送 接收 但无法弄清楚该属性的架构名称是什么 甚至不确定我是否正确传递了架构参数 正确的架构名称是什么 如何正确传递参数GetProperty and SetPropert
  • Outlook AddIn:如何使用 Outlook 桌面显示 console.log?

    我正在使用 JavaScript 开发 Outlook 插件 我的功能在 Outlook Web 中运行良好 但在 Outlook Desktop 中不起作用 在 Outlook Web 中 我可以在浏览器的控制台中看到我的 console
  • 注册 Office.EventType.ItemChanged 时 Outlook WebAddin 引发内部服务器错误

    在我的 Outlook WebAddin 中 我尝试使用以下代码注册邮件 ItemChange 事件 Office context mailbox addHandlerAsync Office EventType ItemChanged m
  • Outlook 无法识别 ics 文件

    我有一些问题 我正在尝试发送 ics 文件 以便 Outlook 用户可以在他的日历中添加该事件 在某些版本中 例如 2010 它运行良好 家庭版 但在某些版本 例如商业版 上它不能直接识别它 您必须双击内容才能预览它 在另一个版本中 当我
  • 在 Outlook 邮件中发送邮件后 itemId 发生变化

    我正进入 状态itemId之后的邮件项目saveAsync在撰写模式下 邮件项目发送后 项目Id进来Office context mailbox item itemId与撰写模式中给出的不同 用于获取的代码itemId在撰写模式下 var
  • 使用 EWS 创建扩展属性并从 Outlook 加载项访问它

    我目前正在使用 EWS 来将我们公司的应用程序与 Exchange 2010 进行一些集成 我正在使用 EWS 创建 Exchange 2010 的约会 并且运行良好 但最近我尝试在创建约会时添加一些自定义 扩展属性 下面是我添加扩展属性的
  • 仅在 Web 上启用 Outlook Web 加载项

    我开发了一个基于 Outlook Web 的加载项 为了安装它 我从 OWA 中的 管理加载项 页面添加了清单文件 https msdn microsoft com en us library office fp142256 aspx ht
  • Outlook 2007 加载项部署为 DLL

    我开发了第一个 Outlook 插件 我可以看到调试加载项会自动打开 Outlook 我注意到 Outlook 所涉及的问题20 sec当我的加载项附加时打开 作为一键式新菜单 我认为这可能是由于我正在调试我的项目造成的 我将加载项发布到本
  • 如何以编程方式判断安装了哪些 Outlook 插件以及它们是否已启用?

    如何确定安装了哪些 Outlook COM 或 PIA 插件以及它们是否已启用 我怎样才能获得这些信息 以及文件版本 1 如果您想从另一个 Outlook 加载项内部访问此信息 您可以使用 Application ComAddins 对象
  • 共享邮箱上的 MailItem.GetConversation()

    我正在使用以下代码来显示对话中原始电子邮件的属性 void DemoConversation object selectedItem Application ActiveExplorer Selection 1 For this examp
  • 在 Outlook 2013 中调用功能区按钮

    我们有一个 Outlook 插件 我们需要以编程方式取消任务项检查器窗口中的任务分配 就像取消分配按钮一样 人们会认为调用TaskItem CancelResponseState 可能会起作用 虽然它确实取消了分配 但它也使任务处于不可分配
  • Outlook 插件 - 获取当前选定的日历日期

    当右键单击日历并运行功能区操作时 是否可以像获取当前邮件项或约会项一样获取选定的日历日期 功能区 XML
  • Outlook 添加、文本框、删除\退格键不起作用

    我开发了一个 Outlook 插件 自定义任务窗格 在用户控件中带有 Web 浏览器 当我在网络浏览器的文本框中写入内容时 退格键或删除按钮旁边的所有功能都运行良好 但我无法使用这些键 我是否遗漏了什么 我迟到了几年 但我设法解决了这个问题
  • Outlook Application_NewMailEx 在启动时不工作

    我正在使用一个Application NewMailEx处理收到的所有电子邮件 它适用于 Outlook 打开时收到的电子邮件 然而在启动时 Application NewMailEx不会因收到的电子邮件而被呼叫 我尝试使用Applicat
  • Outlook 加载项,无法读取未定义的属性“BeginRequestEventArgs”

    我使用 Visual Studio 开发了 Outlook 插件 我的插件有一个按钮 用于填充会议邀请正文中的详细信息并添加所需的与会者 这在 99 的情况下都有效 但是 时不时地它会给我下面的 JavaScript 错误 Uncaught

随机推荐