Giter VIP home page Giter VIP logo

outlook-add-in-command-demo's Introduction

[ARCHIVED] Add-in Command Demo Outlook Add-in

Note: This repo is archived and no longer actively maintained. Security vulnerabilities may exist in the project, or its dependencies. If you plan to reuse or run any code from this repo, be sure to perform appropriate security checks on the code or dependencies first. Do not use this project as the starting point of a production Office Add-in. Always start your production code by using the Office/SharePoint development workload in Visual Studio, or the Yeoman generator for Office Add-ins, and follow security best practices as you develop the add-in.

The Add-in Command Demo add-in uses the commands model for Outlook add-ins to add buttons to the ribbon.

Prerequsites

In order to run this sample, you will need the following:

  • A web server to host the sample files. The server must be able to accept SSL-protected requests (https) and have a valid SSL certificate.
  • An Office 365 email account or an Outlook.com email account.
  • Outlook 2016, which is part of the Office 2016 Preview.

Configuring and installing the sample

  1. Download or fork the repository.

  2. Copy the add-in files to a web server. You have a couple of options:

    1. Manually upload to a server:
      1. Upload the AllPropsView, Assets, FunctionFile, InsertTextPane, NoCommands, and RestCaller directories to a directory on your web server.
      2. Open command-demo-manifest.xml in a text editor. Replace all instances of https://localhost:8443 with the HTTPS URL of the directory where you uploaded the files in the previous step. Save your changes.
    2. Use gulp-webserver (requires NPM):
      1. Open your command prompt in the directory where the package.json file is installed and run npm install.
      2. Run gulp serve-static to start a web server in the current directory.
      3. In order for Outlook to load the add-in, the SSL certificate used by gulp-webserver must be trusted. Open your browser and go to https://localhost:8443/AllPropsView/AllProps.html. If you are prompted that "there is a problem with this website's security certificate" (IE or Edge), or that "the site's security certificate is not trusted" (Chrome), you need to add the certificate to your trusted root certification authorities. If you continue to the page in the browser, most browsers allow you to view and install the certificate. Once you install and restart your browser, you should be able to browse to https://localhost:8443/AllPropsView/AllProps.html with no errors.
  3. Logon to your email account with a browser at either https://outlook.office365.com (for Office 365), or https://www.outlook.com (for Outlook.com). Click on the gear icon in the upper-right corner.

    • If there is a menu item called Manage integrations, follow these steps:

      1. Click Manage integrations.

        The Manage integrations menu item on https://www.outlook.com

      2. Click the text Click here to add a custom add-in, then choose Add from file....

        The custom add-in menu on https://www.outlook.com

      3. Browse to the command-demo-manifest.xml file on your development machine. Click Open.

      4. Review the warning and click Install.

    • If there is not a menu item called Manage integrations, follow these steps:

      1. Click Options.

        The Options menu item on https://www.outlook.com

      2. In the left-hand navigation, expand General, then click Manage add-ins.

      3. In the add-in list, click the + icon and choose Add from a file.

        The Add from file menu item in the add-in list

      4. Click Browse and browse to the command-demo-manifest.xml file on your development machine. Click Next.

        The Add add-in from a file dialog

      5. On the confirmation screen, you will see a warning that the add-in is not from the Office Store and hasn't been verified by Microsoft. Click Install.

      6. You should see a success message: You've added an add-in for Outlook. Click OK.

Running the sample

  1. Open Outlook 2016 and connect to the email account where you installed the add-in.
  2. Open an existing message (either in the reading pane or in a separate window). Notice that the add-in has placed new buttons on the command ribbon.

The addin buttons on a read mail form in Outlook

  1. Create a new email. Notice that the add-in has placed new buttons on the command ribbon.

The addin buttons on a new mail form in Outlook

Key components of the sample

How's it all work?

The key part of the sample is the structure of the manifest file. The manifest uses the same version 1.1 schema as any Office add-in's manifest. However, there is a new section of the manifest called VersionOverrides. This section holds all of the information that clients that support add-in commands need to invoke the add-in from a ribbon button. By putting this in a completely separate section, the manifest can also include the original markup to enable the add-in to be loaded by clients that do not support the add-in command model. You can see this in action by loading the add-in in Outlook 2013 or Outlook on the web.

The Add-in Command Demo add-in loaded in Outlook on the web

Read mail form

The add-in loaded in Outlook on the web's read mail form

Compose mail form

The add-in loaded in Outlook on the web's compose mail form

Within the VersionOverrides element, there are three child elements, Requirements, Resources, and Hosts. The Requirements element specifies the minimum API version required by the add-in when loaded by clients that support the add-in model. The Resources element contains information about icons, strings, and what HTML file to load for the add-in. The Hosts section specifies how and when the add-in is loaded.

In this sample, there is only one host specified (Outlook):

<Host xsi:type="MailHost">

Within this element are the configuration specifics for the desktop version of Outlook:

<DesktopFormFactor>

The URL to the HTML file with all of the JavaScript code for the button is specified in the FunctionFile element (note that it uses the resource ID specified in the Resources element):

<FunctionFile resid="functionFile" />

The manifest specifies all four available extension points:

<!-- Message compose form -->
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<!-- Appointment compose form -->
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<!-- Message read form -->
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<!-- Appointment read form -->
<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">

Within each extension point, there is an example of each type of button.

A button that executes a function

This is created by setting the xsi:type attribute of a Control element to Button, and adding an Action child element with an xsi:type attribute set to ExecuteFunction. For example, look at the Insert default message button:

<!-- Function (UI-less) button -->
<Control xsi:type="Button" id="msgComposeFunctionButton">
  <Label resid="funcComposeButtonLabel" />
  <Supertip>
    <Title resid="funcComposeSuperTipTitle" />
    <Description resid="funcComposeSuperTipDescription" />
  </Supertip>
  <Icon>
    <bt:Image size="16" resid="blue-icon-16" />
    <bt:Image size="32" resid="blue-icon-32" />
    <bt:Image size="80" resid="blue-icon-80" />
  </Icon>
  <Action xsi:type="ExecuteFunction">
    <FunctionName>addDefaultMsgToBody</FunctionName>
  </Action>
</Control>

A drop-down menu button

This is created by setting the xsi:type attribute of a Control element to Menu, and adding an Items child element that contains the items to appear on the menu. For example, look at the Insert message button:

<!-- Menu (dropdown) button -->
<Control xsi:type="Menu" id="msgComposeMenuButton">
  <Label resid="menuComposeButtonLabel" />
  <Supertip>
    <Title resid="menuComposeSuperTipTitle" />
    <Description resid="menuComposeSuperTipDescription" />
  </Supertip>
  <Icon>
    <bt:Image size="16" resid="red-icon-16" />
    <bt:Image size="32" resid="red-icon-32" />
    <bt:Image size="80" resid="red-icon-80" />
  </Icon>
  <Items>
    <Item id="msgComposeMenuItem1">
      <Label resid="menuItem1ComposeLabel" />
      <Supertip>
        <Title resid="menuItem1ComposeLabel" />
        <Description resid="menuItem1ComposeTip" />
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="red-icon-16" />
        <bt:Image size="32" resid="red-icon-32" />
        <bt:Image size="80" resid="red-icon-80" />
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>addMsg1ToBody</FunctionName>
      </Action>
    </Item>
    <Item id="msgComposeMenuItem2">
      <Label resid="menuItem2ComposeLabel" />
      <Supertip>
        <Title resid="menuItem2ComposeLabel" />
        <Description resid="menuItem2ComposeTip" />
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="red-icon-16" />
        <bt:Image size="32" resid="red-icon-32" />
        <bt:Image size="80" resid="red-icon-80" />
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>addMsg2ToBody</FunctionName>
      </Action>
    </Item>
    <Item id="msgComposeMenuItem3">
      <Label resid="menuItem3ComposeLabel" />
      <Supertip>
        <Title resid="menuItem3ComposeLabel" />
        <Description resid="menuItem3ComposeTip" />
      </Supertip>
      <Icon>
        <bt:Image size="16" resid="red-icon-16" />
        <bt:Image size="32" resid="red-icon-32" />
        <bt:Image size="80" resid="red-icon-80" />
      </Icon>
      <Action xsi:type="ExecuteFunction">
        <FunctionName>addMsg3ToBody</FunctionName>
      </Action>
    </Item>
  </Items>
</Control>

A button that opens a task pane

This is created by setting the xsi:type attribute of a Control element to Button, and adding an Action child element with an xsi:type attribute set to ShowTaskPane. For example, look at the Insert custom message button:

<!-- Task pane button -->
<Control xsi:type="Button" id="msgComposeOpenPaneButton">
  <Label resid="paneComposeButtonLabel" />
  <Supertip>
    <Title resid="paneComposeSuperTipTitle" />
    <Description resid="paneComposeSuperTipDescription" />
  </Supertip>
  <Icon>
    <bt:Image size="16" resid="green-icon-16" />
    <bt:Image size="32" resid="green-icon-32" />
    <bt:Image size="80" resid="green-icon-80" />
  </Icon>
  <Action xsi:type="ShowTaskpane">
    <SourceLocation resid="composeTaskPaneUrl" />
  </Action>
</Control>

Questions and comments

  • If you have any trouble running this sample, please log an issue.
  • Questions about Office Add-in development in general should be posted to Stack Overflow. Make sure that your questions or comments are tagged with office-addins.

Additional resources

Copyright

Copyright (c) 2015 Microsoft. All rights reserved.


Connect with me on Twitter @JasonJohMSFT

Follow the Outlook Dev Blog

This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

outlook-add-in-command-demo's People

Contributors

davidchesnut avatar itaykomemy avatar jasonjoh avatar lindalu-msft avatar o365devx avatar ymschaap avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

outlook-add-in-command-demo's Issues

Iframed dialog fails to open from pinned task bar when listening for ItemChanged event.

In production, we've run into an issue where an iframed dialog in a web client (e.g. Chrome) will initially open successfully when triggered from the task pane. However, subsequent requests unexpectedly fail when initiated as follows:

At outlook.office.com, do the following:

  1. Click the Inbox folder
  2. Click the first message in the Inbox folder
  3. If the task pane wasn't previously pinned
    1. Click the Add-In Command Demo icon
    2. Click the Open Task Pane menu item
  4. In the Task Pane, click the Open iDialog button to open an iframed dialog window
    Expected: The dialog should simply appear
    Actual: Performs as expected
    Note: document.querySelector('iframe[id$=":Dialog"]').id confirms a successful DOM query of the dialog.

From here, do the following:

  1. Ensure the Task Pane is pinned (i.e. the pin icon is pointing downward)
  2. Close the current dialog
  3. Click a different message in the Inbox folder
  4. In the Task Pane, click the Open iDialog button to open an iframed dialog window
    Expected: The dialog should simply appear
    Actual: The dialog doesn't appear even though the response from the Dialog API suggests it was indeed opened. Further attempts to open the dialog are unsuccessful as the api errors with: "A dialog is already opened".
    Note: document.querySelector('iframe[id$=":Dialog"]').id fails to find the element the API suggests is present.

Is there a current fix or workaround for this?

I've forked this repo, created the following branch: https://github.com/addisondavid/outlook-add-in-command-demo/tree/office-initialize-failure, implemented the simple dialog web example found here: https://github.com/OfficeDev/Office-Add-in-Dialog-API-Simple-Example and added the additional code needed to reproduce the issue.

There is a workaround (I can't find the link to the article atm) that suggests calling the close method is a try/catch block to force/ensure it's closed but this did not work.

HTML output of email is empty in Outlook for Android

I installed the add-in in my outlook.com account, hosted on a https nginx server, with CORS enabled.
When I click on the Display all properties, the body(HTML) is different in android

Outlook on Android

android

Outlook for iOS

image

Outlook Web

screen shot 2017-09-27 at 8 38 07 am

Outlook for Mac

screen shot 2017-09-27 at 10 07 09 am

The email was forwarded from Gmail. When I remove the "From: blah blah blah" from the body of the email and forward, it works fine.

Has someone encountered this? Anything that can be done to fix this?

Office 365 add ins for outlook

How to auto active any add in when we are in compose mode?...
Is there any way to so this by using javascript api.

Thanks

Add-in doesn't appear in action items tab

Hi, i cloned and run the repo, added manifest to outlook web but the Add-in doesn't show up in the "Action Items" tab like in the Readme picture with a yellow arrow.

Do i have to make any adjustments to display add-in inside that tab?

Thanks in advance.

Issue preview

Task Pane fails to re-initialize when switching between Read and Compose modes

In production, we've noticed the following when toggling between reading and composing messages where, it appears, due to the app not re-initializing as expected, the expected Office.context.mailbox.item fails to properly load.

I've forked this repo and created the following branch with the additional code needed to reproduce the issue: https://github.com/addisondavid/outlook-add-in-command-demo/tree/office-initialize-failure

Prerequisite: the task pane should already be pinned in read mode.

On outlook.office.com, do the following:

  1. Click the Inbox folder
  2. Click the first message in the Inbox folder
    Expected Result: The pinned task pane in read-mode appears displaying the appropriate mailbox context item (i.e. the currently selected message)
    Actual Result: Performs as expected
    Note: Office.initialize was called

From here, do the following:

  1. Click New
    Expected: The pinned task pane in compose-mode appears displaying the appropriate mailbox context item (i.e. the current state of the composed message)
    Actual: Performs as expected
    Note: Office.initialize was called

From here, do the following:

  1. Discard the new message, returning to the previously selected message in the Inbox folder
  2. Click the Add-In Command Demo icon
  3. Click the Open Task Pane menu item
    Expected: The pinned task pane in read-mode appears displaying the appropriate mailbox context item (i.e. the current state of the composed message)
    Actual: Performs as expected
    Note: Office.initialize was called

From here, do the following:

  1. Click New
    Expected: The pinned task pane in compose-mode appears displaying the appropriate mailbox context item (i.e. the current state of the composed message)
    Actual: The pinned task remains in read-mode, opened to the previously selected mailbox item and not the compose-mode state, displaying the current state of the composed message.
    Note: Office.initialize was not called

This issue occurs when the task pane is pinned in the read mode and regardless of whether previously pinned in compose mode or during the first Click New step.

Is this indeed a bug, or have I missed a step?

Show task pane by javascript

Is it possible to show the task pane by Javascript? I know it's possible to show the task pane with a button through the manifest file (<Action xsi:type="ShowTaskpane">) but I'm looking for the following:

  1. User executes a function by pressing a button (<Action xsi:type="ExecuteFunction">).
  2. The functionFile checks for a condition, in our case check if a certain roamingSetting is set.
  3. If not, the task pane is shown to ask a user to store the needed roamingSetting.

If this is not possible:

  • Is it possible to check for a First Run?

Issue with conversation mode off on email change

The addin does not change on selected email change when conversation mode is set to off.

Steps to reproduce:

  1. In the outlook web app go to settings
  2. In conversation view section check off radio box
  3. Open an email from the inbox
  4. Open addin
  5. Pin addin
  6. Select another email

Expected: addin is updated with data from the new selected email

Actual: data from the first email is displayed

Having the addin unpinned will not close the addin when another email is selected.

This issue seems to be related to office.js as handlers do not trigger when conversation view is set to off.
This works fine in the desktop version of outlook

Doesn't support 'éèà' characters

Hi, i succesfully installed and configured the add-in. There is a big issue for me : as soon as i add a special character (é è à or other...) in any string of characters of the manifest, I get an "invalid character in the given encoding" error when I submit the manifest file.

The encoding is specified to be in UTF-8. I edit the manifest with Sublime Text 3, specifying to save in UTF-8. I tried with and without BOM. But still not working. I don't understand the reasons of such a problem !

getCallbackTokenAsync method not returning token

I am creating an add-in for outlook in which i am trying to get a outlook token suing getCallbackTokenAsync({isRest:true}) method. To execute the method it is taking too long time and after few minutes it is returning status failed.

Here is my platform
OS: Win 10 Azure VM
Office Version: Office 365 Pro Plus - 16.0.9126.2275
Mailbox Requirement Set: 1.6

I don`t see any error as well other than getting status failed.

Can someone please help me with this.

Thanks in advance.

add-in doesn't work when sideloaded with URL

My add-in is accessible from my web server azure. But it doesn't work. The taskpane opens but when I click on the button to send the email it doesn't do anything. the error that appears in the console of google chrome is :

Uncaught Error: Office.js has not fully loaded. Your app must call "Office.onReady()" as part of it's loading sequence (or set the "Office.initialize" function). If your app has this functionality, try reloading this page.
at office.debug.js:1496
at validateFunction (office.debug.js:281)

Thank you.

How to test during development?

In pre-requisites, it is mentioned that the sample needs to be hosted in HTTPS website. What are the requirements for development using Visual Studio? Is it possible to debug the app within Visual Studio by simply pressing F5? Does that work?

Any help will be appreciated.
Thanks.

Add-in doesn't work on mobile

Hello,

I followed your tutorial step by step but I have a problem: the add-in appears on mobile but it doesn't work.

The node js server is started on my computer. I don't know if it is because my add-in is accessible by localhost. If it is that the issue, please tell me how to make it accessible remotely.

Thank you.

Command addin dont load on outlook starup

Hi,

I checked command addin demo for outlook 2016 on mac. It seems addin don't load on outlook startup, but as soon as I try to compose a new email, they start showing on mail window as well as on main outlook toolbar. I suppose this is not the desired behavior.

Changing Icons?

I got the add-in to work. But when I edit the Icon colours (ie. in paint, replace the blue with yellow etc.) and keep the same filename and reinstall the add-in, the icons still stays blue. On the gulp server the icons are yellow, in the 'Images' folder they are yellow. So where is Office getting the blue icons, even after reinstalling the add-in when none exist?

How to add a new ribbon button like "New Email"?

i want add a ribbon button like "New Email", and click it show a dialog.
i want add a new menu item insert to "New Items" , and click it show a dialog.
i know it can be done in Visto mode, and how can i do the same thing in the web mode?
Please provide support, thank you.

The AppRead part of the demo doesn't work

I was able to set up and use the AppCompose part of the demo with the Outlook 365 web app, and it works nicely, but the AppRead part doesn't work (out of the box, at least).

npm install fails, gnome git.gnome.org decomissioned

npm install fails

npm ERR! code 128
npm ERR! Command failed: /usr/bin/git submodule update -q --init --recursive
npm ERR! warning: templates not found /tmp/pacote-git-template-tmp/git-clone-ce68d33a
npm ERR! fatal: unable to connect to git.gnome.org:
npm ERR! git.gnome.org[0: 209.132.180.180]: errno=No route to host
npm ERR! git.gnome.org[1: 209.132.180.168]: errno=No route to host
npm ERR!
npm ERR! fatal: clone of 'git://git.gnome.org/libxml2' into submodule path 'libxml2' failed
npm ERR!

npm ERR! A complete log of this run can be found in:
npm ERR! /home/butch/.npm/_logs/2018-09-13T11_38_48_646Z-debug.lo

Addin in Mac

Hi,

I have installed this addin in my office 365 account.

When I open my account in Windows Outlook 2016, I can see icons in header toolbar. But those icons don't appear on Mac Outlook 2016. Though I can see it working when I open the mail item. Is this not supported on mac ?

Thanks.

Can't install addin

Server is running, but when I try to install addin, I get the following message:

Das hat leider nicht geklappt.

Diese App kann nicht installiert werden. Diese App wird von der Version von Exchange Server, mit der Ihr Konto eine Verbindung herstellt, nicht unterstützt.

Attachments REST API returns 403 on Outlook 2016 for Mac

I am trying to access attachment using REST API as mentioned in this doc https://docs.microsoft.com/en-us/outlook/add-ins/use-rest-api

Both Mailbox version is 1.5

var getAttachmentsUrl = Office.context.mailbox.restUrl + '/v2.0/me/messages/' + itemId + '/attachments';

OWA sends the URL as

https://outlook.office365.com/api/v2.0/me/messages/{itemId}/attachments

This works well

Outlook 2016 version 15.41 (171205) for Mac sends the URL as

https://outlook.office.com/api/v2.0/me/messages/{itemId}/attachments

This throws a 403 error

{
    "error": {
        "code": "ErrorAccessDenied",
        "message": "Access is denied. Check credentials and try again."
    }
}

Because of this the add-in fails to work on Outlook 2016 for Mac.

It works fine in Outlook 2016 for Windows version 1711 (Build 8730.2175 Click-to-Run)

This happens for Uber receipts, I can forward the email if need be.

Another observation is, if I have 3 Uber emails, the first one works fine and rest 2 throws 403.

Whereas the same API works for a different email with a PDF attachment.

Outlook add-in REST API support

Is REST API support available in Android and iOS outlook client? (Using Office.js)

I wish to read the attachments using my outlook add-in, since Office.context.mailbox.ewsUrl is not supported in mobile, I used REST API to get the base64 encoding of the attachment.

I use Office.context.requirements.isSetSupported('Mailbox', '1.5') to get the attachments.
This works well in OWA in the browser. But when I check for this in Outlook for Android, it is returned as false. I debugged using Vorlon JS and this is the output I got

OWA Browser
owa

Outlook Mobile App (Android)
outlook-android

If I do not check specifically for Office.context.requirements.isSetSupported('Mailbox', '1.5') this and use the Office.context.mailbox.restUrl + '/v2.0/me/messages/' + itemId + '/attachments' directly, it works fine on OWA in browser and Outlook for Android.

What is the minimum version of Mailbox with which the REST API works? (Because I got it working with Mailbox 1.4 in Android?

As per the docs, it says this feature is in Preview, but I see there is a 1.5 version of docs and a Preview version of docs.
screen shot 2018-01-08 at 3 41 51 pm

Also, how does one check what version of Mailbox is supported by different clients?

Any help is appreciated.

Thanks

Unable to get data from SharePoint Online in Outlook 2013 client

My email client is Outlook 2013, but my webmail is Outlook.com so I was able to add the app and it works perfectly in Outlook 2013 client as well.

I added a feature which calls SharePoint Online and fetches list items, which works great in Outlook.com but the same SharePoint functionality does not work in the client.

First of all, I know that your documentation states, that this solution is meant to work in Outlook 2016 client, but I was wondering if anyone knows why the SharePoint piece would fail or how I could troubleshoot the client for errors.

I would appreciate any help!

Thank you

Outlook.Com under Manage Add-Ins I Don't See A Plus

I'm following instructions to try from an Outlook.Com account. When I go to Manage Add-Ins I don't see a toolbar with a + on it to select Add From File, instead only a list of Add-Ins from the Store. Is that part of the instructions out of date? If Outlook.com has disabled the Add From File functionality what's a good alternative for testing in development?
manage add-ins

gulp task `validate-xml` is missing manifest.xsd

The gulp task to validate if your manifest xml is valid, seems like a very useful utility. When trying to run it though, it is looking for a local xsd file, but that is not in this repository. Can you add manifest.xsd to this project? Or add the link to the README?

How do I show UI not in pane?

I understand I can add html/js code that is then called from a Ribbon button and I understand I can use office.js but I'm not clear on how to tie this to Outlook's UI back so that when user clicks the button - they see view inside of Outlook, can someone help with that?

Outlook 2016 on Mac

Hi Jason,

Awesome work; keep it up. I just wanted to let you know that your add-in doesn't work on Outlook 2016 on a Mac. Do you have any idea why it doesn't work?

Here's a screenshot
image

I'm using Outlook Version 15.23 (160611) on OS X El Captain v10.11.5

Icons over https://localhost

Icons are not visible in Outlook 2016 desktop when we have deployed the demo on localhost over https protocol, thou they are visible in Outlook Web App.

Add gulp task to make it easy for this sample to run web server

Like the Yeoman generator...would be great if you could run a gulp task to run up a web server in command prompt. e.g. npm install, then "gulp serve-static".
Essentially need to put the gulpfile.js and a package.json.

I have this already done if you want it?

How to consume azure rest api from Outlook Add-In

I am trying to implement one service which will be hosted in Azure and Outlook Add-In. I have to call custom service that I implemented in Azure from Add-in. Can you provide guidelines or samples which can help in my development?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.