Outlook Web Addin - Event handlers - outlook

I have a business requirement where there is a need to extend the functionality of outlook.
I am exploring Office Web Addins for this requirement.I have following queries.
I need to automatically move all incoming email to an external location.Does Office JS API provide handlers to incoming email event?
If it possible to define an action with Office JS API , which when triggered can loop through all the current unread emails and perform some action on each email (like move certain emails to a certain external location )
Is it possible to append custom headers to a email being composed using Outlook web add-in?

No
You can use EWS for that
No.
If your code only needs to run under the Windows version of Outlook, a COM addin might be a better option.

Unfortunately, it seems not possible to meet your requirements using Outlook Web Addin.
For more information, please review the following link: Outlook Add-ins overview

Related

How to send an email from an outlook office add on?

I am trying to build an outlook add on, using react. I looked everywhere trying to find something that uses the mailbox in which the addon has been opened from, to programmatically send an email to a specified user.
Something similar to the google's command:
GmailApp.createDraft(e.parameters.address, e.parameters.subject, e.parameters.body, {
htmlBody: e.parameters.body,
name: 'Automatic Sender'
}).send();
Is the mail-sending process available on outlook?
Outlook web add-ins work under the context of currently selected item only. OfficeJS doesn't provide anything for creating and sending emails programmatically.
In Outlook add-ins you may consider using EWS, see Call web services from an Outlook add-in for more information. Also you may take a look at the Graph API as a possible workaround.

Is there an Outlook Javascript API to get control to addin on Saving as Draft or before syncing to server?

I am working on an Outlook addin to make sure confidential information is not leaked using mail.
Using the on-send feature using ItemSend, we were able to get the email fields and block the sendmail, if required
https://github.com/OfficeDev/Outlook-Add-in-On-Send/tree/master/outlook-add-in-on-send
But there is an use case
User composes the mail and saves it to draft (without clicking on Send)
In outlook on web, composing a mail saves to draft automatically.
How can the add-in get a callback when draft is synced to Outlook server ?
How can the add-in get a callback when draft is synced to Outlook server ?
There is no such callback available for web add-ins. You may post a feature request or suggest a feature on the Tech Community site where community members get to share ideas on ways MS can make Microsoft Graph and Office Platform better by sharing feature requests and ideas.
Nothing like that for the JS-based addins.
For the COM addins, OOM exposes MailItem.Write event - your event handler can cancel the operation.

How to send appointment through Outlook add-in?

I'm trying to implement an add-in for Outlook which has some fields and a button that once clicked does some validations and sends an appointment to inform the attendees.
I am using the function below to achieve my goal:
Office.context.mailbox.item.saveAsync()
Office.context.mailbox.item.close() (as a callback for the function above)
It works for office365, but it doesn't work for office365 thick client.
I found in the Microsoft docs that with the function 'saveAsync' in Outlook in cached mode, the item is saved to the local cache. I disabled this option and still getting the same result.
I was using OnSend functionality, but this feature is not supported for Outlook client.
Any advice or tips of how could I have the functionality of sending the appointment through my Add-in in both, client and web version of Outlook? Basically I need to trigger the existing button 'Send' in the calendar.
It sounds like the ItemSend Event (OnSend) you are using in Outlook on the Web handles your scenario. We are working to bring this functionality to Outlook on Windows soon.

Outlook 365: Keeping specific events in sync with external system

I'm developing an integration with Outlook in Office 365 using the latest office.js api for add-ins.
What I have currently is an add-in, which displays a side pane on the appointment compose form. Inside that pane I have the functionality to create an object in our external based on the appointment, taking the start/end times, subject, location etc.
So I have appointment A in the calendar of an O365 account, and object A in an external system.
Is there a way to keep those in sync? I don't see it could be possible using the Outlook Add-In Javascript API, but maybe using ics files, or the Outlook REST API, or Exchange EWS? I see here plenty of issues with the credentials, as the user has separate credentials in our system.
Any tips? I tried to send from our system an ICS file with same iCal UID, but Outlook ignores it.
You would want to to use the Outlook Push Notifications REST API in your web service to get polled when users make changes to their Calendar. Then use the Outlook Calendar REST API to sync changes from your system to their Calendar.

command for sent mail in outlook web app addin

Recently I tried the outlook web app add-in in visual studio 2015. It's cool one It purely based on the Java script commands. My ultimate motivation i need add one button in add-in if user click that button I need the save the mail my database and send that mail to the recipient.
I am able to fetch the data and saving to my database is successful but unable to trigger send option in add-in. There is any java script command available. Actually I have achieved the same scenario in outlook windows application.
You should be able to send the email using the new Outlook REST APIs specifically we have an api for sending emails. In addition, to close the compose form, you can use the Office.context.mailbox.item.close() To close the mail or calendar item in compose.
You should try to send the email from server side logic using EWS (exchange web services) see this post or you can authenticate with Azure Active Directory and invoke the outlook REST API

Resources