【问题标题】:How i can embed Outlook Web App into my site?如何将 Outlook Web App 嵌入我的网站?
【发布时间】:2013-07-02 13:37:15
【问题描述】:

我想将 Outlook Web App 嵌入我的网站。直接在我的网站页面上显示日历、邮件、人员屏幕。我试图通过 iFrame 来做,但这是被禁止的。有可能吗?

【问题讨论】:

  • 你看过这个Outlook Integration
  • 我认为这不是我的意思。我不想从头开始实施 Outlook 门户。我只想在我的网站页面上显示默认的 Outlook Web 应用程序。

标签: javascript html .net asp.net-mvc outlook


【解决方案1】:

与普遍看法相反,这是可以实现的。

在我的博文 (http://blog.degree.no/2013/06/owa-in-iframe-yes-its-possible/) 中有更多详细信息,但这是所需的代码。如果您在“轻模式”(标志 = 1)下运行它,则问题较少并且它可以跨域工作,但是如果您在同一个域中运行它(例如,在 yourdomain.com 上运行的网站并且您的交换服务器在邮件上运行。 yourdomain.com)它也适用于“完整模式”(标志 = 0):

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>

<script>
    function LoginToOWA(server, domain, username, password) {


        var url = "https://" + server + "/owa/auth/owaauth.dll";
        // flags 0 = full version, flags 1 = light weight mode
        var p = { destination: 'https://' + server + '/exchange', flags: '1', forcedownlevel: '0', trusted: '0', isutf8: '1', username: domain + '\\' + username, password: password };


        var myForm = document.createElement("form");
        myForm.method = "post";
        myForm.action = url;

        for (var k in p) {

            var myInput = document.createElement("input");
            myInput.setAttribute("name", k);
            myInput.setAttribute("value", p[k]);
            myForm.appendChild(myInput);
        }


        document.body.appendChild(myForm);
        myForm.submit();
        document.body.removeChild(myForm);
    }
</script>


<body onload="javascript:LoginToOWA('mail.someserver.com','yourdomain','yourusername@someserver.com','yourpassword');">
    <img src="../../gfx/loadingAnim.gif" /> Please wait while your inbox is loading... 
</body>
</html>

【讨论】:

  • 我尝试这样做,但收到来自服务器的 404(未找到)错误。
  • 您的 OWA 的 URL 是什么?你确实用你自己的替换了虚拟设置(“mail.someserver.com”,“yourdomain”等),显然? :)
  • 是的,我使用了我的电子邮件设置
  • 听起来生成的指向您的邮件服务器的 URL 不正确。调试脚本,找出实际输出是什么。输入“mail.yourserver.com]owa”是否可以登录OWA?
  • 我正在研究同一主题 - 是否可以在第三方 Web 应用程序中嵌入 Office 365 Outlook。我收到错误消息,指出不可能这样做。上面帖子中的链接无效。从上面的讨论中,我不明白为什么 url 会有所不同。它是标准网址 - outlook.office365.com。我错过了什么吗?
【解决方案2】:

您使用的是哪个版本的 OWA?我以前在 OWA-2003 上为我们公司的 Intranet 做过这个。只需将您的 iframe 指向 webpart url,如下所示:

http://server/exchange/user/inbox/?cmd=contents&view=Two-Line%20View&theme=4

这仅在您的主网站使用 Windows 集成身份验证时才有效。您必须使用 ASP.Net 服务器端代码将“用户”替换为登录的用户名。

在 MS 知识库文章中搜索 Webpart 参数。您可以显示收件箱、日历等。

【讨论】:

  • 我只是想用这个html:
  • 您可以添加指向此 MS 知识库文章的链接吗?
  • 好的。这有帮助。我看到此链接转到 login.live.com 进行身份验证。 login.live.com 站点将 http 标头 X-Frame-Options 设置为“拒绝”。没有什么可以或应该做的。
  • @Abhitalks - 我正在研究同样的主题 - 是否可以在第三方 Web 应用程序中嵌入 Office 365 Outlook。我得到同样的错误。这是否得出结论认为嵌入前景是不可能的,或者还有其他可以尝试的选择?还有任何参考资料说 Office 365 应用程序的设计原则是不能将它们嵌入任何地方?这将使这一点变得有力。
  • @AndyDufresne:当我写这个答案时,这是针对 Exchange 2003 内部部署的。这种技术很有效,得到了 Microsoft 的支持和记录。他们称之为 OWA Web 部件。但是,从 Exchange 2013 (CU2) 开始,他们开始插入 X-Frame-Options 标头以防止点击劫持。这也适用于 O365。到目前为止,安全限制比以往任何时候都高,这是正确的,因为 O365 是公共云。 (我认为您仍然可以在本地覆盖 X-Frame,但不建议这样做)。对于 O365,推荐的方法是使用 API、EWS/Graph 编写代码。
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 2020-10-29
  • 2017-04-23
  • 2021-09-07
  • 2022-01-20
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多