VSTO addon save files in ownCloud - outlook

I'm looking for a solution to send a file as an attachment to someone's email, the file is saved to ownCloud, and the recipient only receives a link to download the attachment in the body of the email.
Is it possible?

Yes, it is. You just need to handle the ItemSend event of the Application class which is fired whenever an Microsoft Outlook item is sent, either by the user through an Inspector (before the inspector is closed, but after the user clicks the Send button) or when the Send method for an Outlook item, such as MailItem, is used in a program.
In the event ItemSend handler you may extract the attached files and start uploading them to the webserver. You may cancel the process of sending the email and initiate it anew as soon as all files are uploaded. Before calling the Send method on the item you should paste the links for the uploaded files.

Related

On-send add-in not loading after Outlook error

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.

A MailItem saved in the ItemSend Event is saved as draft

I'm developing an Outlook add-in that allows the user to save an email to the filesystem just after it's been sent.
To achieve this, I intercept the Application.ItemSend event, and inside my handler I call MailItem.SaveAs(...). It works, basically.
The problem I'm facing is that, when I open the file saved, the email is in draft state. I mean, the recipients, subject and message body can be modified, and the email can be resent. I want the email to be in "sent" state, i.e. not modifiable.
It looks like Outlook API does not provide any event dispatched after the email is sent. Only before, and this is my pain.
Do you have any idea to perform this?
Thanks a lot for your help!
Nico
the earliest you can save the message in the sent state and with the sender properties populated is when Items.ItemAdd event fires on the Sent Items folder.

Outlook plug-in

I'm looking build an outlook addin that can do the following. Would like to hear tips from anyone who might have done this before.
Upon install, read the person's profile in outlook and call a service which will create an account for that person in my app
When person sends an email from outlook with a .pptx/.ppt file(s) attached, it calls a service to automatically upload that file(s) into my app.
Upon install, read the person's profile in outlook and call a service which will create an account for that person in my app
You can use Namespace.CurrentProfileName property introduced with Outlook 2007.
When person sends an email from outlook with a .pptx/.ppt file(s) attached, it calls a service to automatically upload that file(s) into my app.
The Application.ItemSend event is fired whenever an Microsoft Outlook item is sent, either by the user through an Inspector (before the inspector is closed, but after the user clicks the Send button) or when the Send method for an Outlook item, such as MailItem , is used. So, in the event handler you can check the Attachments collection for the files specified and do your web calls.
See Walkthrough: Creating Your First VSTO Add-In for Outlook to get started quickly.

Create text/calendar type email that triggers accept/reject/ignore options

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

Outlook Addin - Wait for a response

I have an Outlook Addin that creates a contact on a webpage by making an API call to that webpage. When the Addin runs (via the click of a button), the API call is made and the user is taken to that webpage to fill in the contact information. After the user has filled in the information and clicks on submit, I would like to catch that event in Outlook and get the user back to Outlook to carry out further actions. Any possible ways of getting this done? I've been looking online but haven't found any solution as such.
Try to display the web page in a modal dialog in your own form. When the form is closed, you can take whatever action is necessary.
You may find the ItemSend event of the Application class helpful. It is fired whenever an Microsoft Outlook item is sent, either by the user through an Inspector (before the inspector is closed, but after the user clicks the Send button) or when the Send method for an Outlook item, such as MailItem, is used in a program.
Also you may consider repurposing ribbon controls. See Temporarily Repurpose Commands on the Office Fluent Ribbon for more information.

Resources