最近由于工做须要,研究了下Outlook Add-in 和 Graph API。下面带你们创建一个Hello World 项目css
创建Add-inhtml
先前需求:git
Node.jsgithub
使用cmd/PowerShell安装最新版本的Yeoman 和Yeoman generator for Office Add-ins npm
npm install -g yo generator-office
创建项目app
使用cmd来访问新文件夹ide
cd my-outlook-addin
使用Yeoman创建office项目spa
yo office
使用jQuery模板debug
选择JavaScript3d
命名你的项目
选择outlook为建立项目
通过漫长的等待以后CMD里面显示项目已经建立好了。
经过cmd 来访问office add-in 文件夹(注意:这步是必须的,否则等下编译的时候会报manifest文件丢失的错误)
打开visual studio code
在index.html 里面,用下面的代码来代替<body>里面的<header> 和 <main>
<div class="ms-Fabric content-main"> <h1 class="ms-font-xxl">Message properties</h1> <table class="ms-Table ms-Table--selectable"> <thead> <tr> <th>Property</th> <th>Value</th> </tr> </thead> <tbody class="prop-table"/> </table> </div>
打开src/index.js, 用如下代码来代替index.js
如下代码有这些功能:
1. 初始化Office
2. 加载当前outlook里面已经选择邮件
3. 在table里面添加当前email的 properties
'use strict'; (function () { // The initialize function must be run each time a new page is loaded Office.initialize = function (reason) { $(document).ready(function () { loadItemProps(Office.context.mailbox.item); }); }; function loadItemProps(item) { // Get the table body element var tbody = $('.prop-table'); // Add a row to the table for each message property tbody.append(makeTableRow("Id", item.itemId)); tbody.append(makeTableRow("Subject", item.subject)); tbody.append(makeTableRow("Message Id", item.internetMessageId)); tbody.append(makeTableRow("From", item.from.displayName + " <" + item.from.emailAddress + ">")); } function makeTableRow(name, value) { return $("<tr><td><strong>" + name + "</strong></td><td class=\"prop-val\"><code>" + value + "</code></td></tr>"); } })();
为了让咱们的table更好看一下, 咱们添加一些css到 app.css里面
html, body { width: 100%; height: 100%; margin: 0; padding: 0; } td.prop-val { word-break: break-all; } .content-main { margin: 10px; }
在咱们编译以前,咱们还须要设置下manifest.xml文档
最重要的属性是SupportUrl。这是咱们debug的地址。
接下来是sideload 咱们的 manifest 到Outlook里面。
请跟随这篇文章来部署add-ins
开始编译调试咱们的outlook add-in
在terminal里面输入如下cmd
npm install
在编译成功以后,咱们能够打开outlook了
注意,须要用admin来打开outlook。 打开outlook以后,选中sideload相同的邮箱,add-in 已经自动加载了。
若是没有自动加载, 请打开Store来手动添加
源代码已经上传到GitHub