I'm using ABAP in SAP to generate an appointment in .ics Format and Mail this. If I open Outlook the Appointment is always an E-Mail which has the appointment as attachment. But I want the appointment to be direct identified by outlook, so that I can react with "Accept" "Reject" etc. The Image below shows the E-Mail which is generated with the ICS Event Content. If I use Googlemail it works. Someone has an idea? I'm missing the RSVP Buttons
Try to save any appointment item in Outlook manually using the .ics file format. Then try to open that file from a hard drive. If it is opened correctly you just need to find the missed part/difference between two .ics files (generated by Outlook and yours).
The issue probably lies in MIME structure of the email that you are sending, not in the ics file itself. See Multipart email with text and calendar: Outlook doesn't recognize ics
Related
I am developing an Outlook 'on-send' add-in which loads a dialog box if the email is addressed to multiple recipients after the send button is pressed. In the dialog, the user confirms the intended recipients from a list and then presses send. The add-in then allows the send event to happen.
A problem arises if the emails are not formatted correctly; Outlook throws a ‘does not recognise email’ error after trying to send the email. The problem is that when I try to send the email again after the error, the add-in does not load. The add-in should load every time the user tries to send an email to multiple recipients.
Please see a video of this behaviour here: https://youtu.be/U1VFuy1qbHM
As you can see from the video, the email goes to my Outbox fine after the first send. However, Outlook throws an errors when I edit the email in my Outbox and try to send it again (presumably because I was using a made up email to test with). As you can see, if I then update the emails and click send, the email sends without the add-in loading again. The intended functionality of the add-in is that another dialog box should be displayed in this case.
This behaviour also occurs when you reply to an email where the recipient has their email address formatted differently. For example, 'Name Surname (name.surname#domain.com)' instead of 'Name Surname <name.surname#domain.com>'. Outlook does not seem to like this format and throws a similar error after trying to send the email. After updating the email format and clicking send, the add-in does not load again.
The error occurs in Win32.
I do not think the problem is with the Javascript. I think the add-in does not even load when I try to resend the email. Maybe the add-in is somehow holding onto the ‘True’ value of the on-send event from the previous dialog box? I have tried editing the different ‘ReadorEdit’ values in the Manifest file to try and ensure the add-in loads for all cases but it has not helped.
What can I do to ensure the add-in loads after these errors?
Thank you for your help- it is very much appreciated.
I'm working on an Outlook Add-in, using office.js, where users can send secure emails using backend service.
In compose mode, when the user sends the email, using the add-in of course, the add-in will then move the message to "Sent Items" folder using the Outlook API /message/{id}/move and everything goes OK with the exception that the message in question still being marked as "Draft" by Outlook which is really annoying and does confuse the user who just sent the email by telling him that "this message hasn't been sent"
I searched through the API to see if there is a way to mark an email as "SENT" in order to prevent Outlook from showing this RED hint but with no luck so far!
So, My Question Is: Is there any way to overcome this misleading msg by marking the email as it was sent by Outlook?
Thanks in advance.
Finally, I was able to achieve a perfect solution for this challenge.
Based on:
#BrianClink's comment
This answer (Which uses Graph API but Outlook REST API): Microsoft Graph API mail office 365: Is any option create inbox message NOT as Draft?
The approach/steps I followed to mark a mailItem as "SENT" (and not shown as 'draft') and put it in "SentItems" Folder are as follow:
First, Save the mailItem as "draft" using Office.context.mailbox.item.currentMail.saveAsync then retrieve its ID
Clone this draft mailItem properties eg: 'Sender', 'Subject', 'Body', 'ToRecipients'..etc so you get an exact copy of it.
With the newly cloned mailItem, add '[SingleValueExtendedProperties]' property with this value :
[
{
PropertyId: 'Integer 0x0E07',
Value: '1'
}
];
Serialize the new item as JSON and POST it to "sentitems" folder as follows:
xhr.open('POST', restHost + '/v2.0/me/MailFolders/sentitems/messages/');
xhr.send(clonedEmailJson);
On success, with xhr.status=201 [created], Remove the draft mailitem using a [DELETE] request
And you will end up having a new mail item created in your "sentItems" folder which appears as it was sent by Outlook :)
This was a very helpful solution to me because my users are using my add-in to send secure emails (using 3rd party API) and NOT Outlook, So, I wanted them to have the same UX/feeling as when they use Outlook.
Note:
Although the solution worked for me perfectly, it came with a price!
On slow internet connections or in case emails containing large attachments, the process can be remarkably slow, because the addin will first save the draft to the remote Exchange Server, get its ID, then duplicate it and send it again to the server, then remove the draft-ed one.
The application I am working on sends automatic emails with ICS files for meeting invites. These emails have a reply-to address with a + sign in it.
This works fine in google calendar and gmail, but gets replaced by a space in outlook. This was working fine in outlook also until about a month ago.
How do I instruct outlook not to interpret it as a ?
Following are some relevant screenshots:
With a few trial-and-errors, I found out that this happens only when there is an .ics file in the email and that outlook was decoding the organizer's email address for some reason. So, event+yi76iq#domain.com was converted to event yi76iq#domain.com.
So, I encoded the email address while preparing the .ics for the calendar event. Here is a snippet of the code - (I am using django here and I have used urlencode to encode the email address).
from django.utils.http import urlquote
.
.
organizer = vCalAddress(u"mailto:{}".format(urlquote(communication_sending_email))) #<-- This is the only difference. I have encoded the email address.
organizer.params['cn'] = vText(organizer_full_name)
event.add('organizer', organizer)
cal = Calendar()
cal.add_component(event)
The result in the .ics file is event%2Byi76iq%40domain.com. I tested this in both Google calendar and Outlook and it worked.
My Outlook Add-in works fine in compose mode, but it always not clickable in read mode, However, all my other colleges' outlook add-in work fine both in compose and read mode, does anyone know this issue?
From Outlook Add-ins overview ...
Outlook does not activate add-ins if the current message item, in a compose or read form, is one of the following:
Protected by Information Rights Management (IRM), in S/MIME format or encrypted in other ways for protection. A digitally signed message is an example since digital signing relies on one of these mechanisms.
A delivery report or notification that has the message class IPM.Report.*, including delivery and Non-Delivery Report (NDR) reports, and read, non-read, and delay notifications.
A draft (does not have a sender assigned to it), or in the Outlook Drafts folder.
A .msg or .eml file which is an attachment to another message.
A .msg or .eml file opened from the file system.
In a shared mailbox, in another user's mailbox, in an archive mailbox, or in a public folder.
Using a custom form.
You most likely have one of the situation listed above, for example use a custom form or messages are digitally signed, use of public folders, etc.
I can programmatically create an email with an .ics file attached. The email gets sent, the recipient clicks the .ics attachment to add it to their calendar. This is easily done.
I want to try and make Outlook behave a little different. When the user previews the message it detects that its calendar type and throws a prompt asking the user to take some action. This action decides if it gets pushed into the calendar. In a perfect world to have accept/reject/ignore options would be super sweet. Is it possible to construct/send and email in such a way that Outlook can treat it different from a standard email? E.G perhaps altering the type (CONTENT-TYPE:text/calendar)?
Note - I have seen a solution where the body contains a link to the .ics file informing the user about the calendar invite details. It then has a click here to Accept. This is nice because the .ics file does not have to be attached.
I am workign in VBScript/VBS world although Im not sure this is all that important. Has anybody done this is any sense. Is it even possible?
edited:
I ended up using the EASendMail component located here it has an autoCalendar property which works really well. It embeds the .ics file as a text/calendar and send the message as a text/calendar. The outcome is perfect, just like it was actually sent from the outlook. It previews with with the action buttons and even loads the meeting in Outlook at tentative waiting for action
Your email needs to follow a proper MIME structure for it to be recognized as an invitation. See Multipart email with text and calendar: Outlook doesn't recognize ics