Macro for exchange - vba

We've written a macro for outlook to order email address in the To and CC fields in alphabetical order, this is to remove "preferences" from the list. Problem is this obviously doesn't work when emails are sent from smartphones or tablets, we would like to implement this macro or something else into exchange so that all emails passing through exchange have the addresses re-ordered. Does anyone know if it's possible and how to go at it?
Thank you,
James

If anyone else is looking into this, the right way arround it is to develop a transport agent (exchange 2007 onwards if not mistaken) with theese libraries:
Here is the MSDN for exchange 2013 (the version i'm using):
http://msdn.microsoft.com/en-us/library/office/dd877026(v=exchg.150).aspx
Do not try with microsofts EWS because it won't let you actually get all the flow of emails and edit them, it allows you to access create and modify elements (emails,appointments, tasks) but for individual accounts.

Related

How can i know that a meeting is already created or not?

Is there a way i can find out if the current meeting window from which i opened the add-in (compose mode) is from a new meeting or from an already created meeting that i opened for edit?
Currently this feature, you requested, is not a part of the product. We track Outlook add-in feature requests on our user-voice page. Please add your request there. Feature requests on user-voice are considered when we go through our planning process.
There are a lot of use cases where this is relevant:
I believe the purpose of many add-ins is to augment the item (e.g. appointment/meeting or email), the user is currently reading or composing. This is usually done in a 3rd party system by associating the meeting in Exchange with a "record" in a separate system. To find out if the current meeting is already associated with a "record" (and possibly display the contents of it), you need a way to identify the meeting obviously. If it's a new meeting, you know there isn't a "record", however if it's an existing meeting, you need to be able to identity it. Exposing itemId in compose mode would satisfy this need. And by the way, the feature is already requested on User Voice!
I can only speculate as to why Microsoft haven't added the feature yet, but I think Office JS started out with support for emails. Compose-mode for emails is almost exclusively for authoring new (unsent) emails, hence they would never have an itemId.
This is not the case for appointments and meetings, however. They are frequently being edited after they have been created, as meetings are often rescheduled, augmented with a more detailed agenda, etc.
Unfortunately the workaround of using saveAsync to obtain the itemId has several drawbacks as you already alluded to: it's very intrusive as it will leave behind "ghost" meetings (as the user now can't regret saving an appointment/meeting) and it causes the sending of spurious meeting update requests to attendees, etc. And it doesn't work in Outlook for Mac! - one of the big selling points of this add-in technology compared to VSTO/COM-add-ins.
At my company we have attempted several times to port our existing VSTO add-in to Office JS, but everytime we stall on this exact issue, as the drawbacks are simply to many!
However, an approach - besides maybe using some crude heuristics - we have thought about, goes like this:
1) Via EWS (or MS Graph), augment every meeting(!) of every user(!) with a custom add-in property containing the itemId. See: https://stackoverflow.com/a/43140644/10752973 on how to set custom properties from the "outside".
2) When the add-in is opened, see if the custom property is present. If the custom property is there, it's an existing appointment/meeting (and you'll know its itemId). If it isn't there, it's a new appointment.
As I said, we haven't implemented it, but in theory it might work. But it's such a huge hassle (and will burden both the Exchange server and the application itself), for something so simple. We would effectively also need to monitor each mailbox in Exchange to detect newly creating appointment/meetings in order to augment them with the custom property, which is needlessly complex.
But I hope this answer might convince the Outlook Add-ins Team to reconsider adding support for obtaining itemId in compose-mode for appointments/meetings.

how integrate outlook calendar with bizagi?

In an activity in bizagi, I also need to send an email (resolved), I need to schedule an appointment in the "outlook" calendar. I cannot find how to make this integration, if possible.
my advice is to put such code outside expressions as it can get messy after some time. I would go for C# DLL containing Exchange Web Services (EWS) client, that would create appointment as described here: https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/calendars-and-ews-in-exchange.

Missing MailHeader fields when accessing IUploadMailData in custom UploadOperationHandler (harmon.ie outlook plugin)

I am trying to access the "To"-Field in the mail header while hooking into the UploadOperation of an email item in the Harmon.ie Outlook addin (to rename the file using some defaults when uploading to sharepoint).
For some reason the only header fields I get from the uploaded item are Received, Date and From.
What I currently do is iterating the IUploadItemData elements in the IWrappedList inside the onBeforeUpload handler.
Then checking for items of type IUploadMailItemData and trying to access their MetaDataValue fields using the Harmonie.SDK.MailHeader class constants as keys. But as already mentioned I only get the 3 fields Received, Date and From.
What am I doing wrong? May I load the other header fields somehow too?
Are you customer?
I am asking because our SDK is only accessible from the Enterprise edition (not the free edition, our forum is for users running the free edition).
If you are customer, please disclose the name of your company and send a support request to support#harmon.ie
----- Jean

can we automate global address list in outlook 2010 using VBA

Can We automate adding/ deleting contacts from Global Address List.
I am trying to develop a tool for my Manager which will add an email to Global Address List when a new person joins our team, remove if a person leaves our team.
I tried searching online but couldn't find data related to same.
Thank in advance.
The Global Address List differs from Contacts folders in that it is not supposed to be editable by users. Each entry in the GAL generally represents an Exchange Mailbox/user; changes are made by Exchange administrators. There is also no way to edit the GAL via the Outlook Object Model. You need to use other tools to do that - see here:
Updating User Information in the Exchange GAL - Slipstick Systems
http://www.slipstick.com/exchange/updating-user-information-in-the-exchange-gal/
If it is actually Outlook Contacts that you want to work with, then you can easily use the Outlook Object Model to add or delete ContactItem objects in specific folders.
Object model (Outlook 2013 developer reference)
http://msdn.microsoft.com/en-us/library/ff866465.aspx

SharePoint, notification email workflow

I was wondering if anyone could possibly help me with my SharePoint 2010 issue. I recently created a CRM System within SharePoint for my small business which utilizes a email notification workflow. The workflow is triggered when the 'Action Needed' field has a 'yes' value, this means that 2 days after the information is created or edited the workflow will notify the particular user that further action is needed.
Previous thread with image of the workflow
Now this is great if myself or other members of the team are only inputting a couple of items but I found out the hard way when i keyed in 20 or so items and received 20 individual emails which is irritating as you can imagine.
So on to my issue, I would like the email notifications to be grouped together in one email so it's more efficient and avoids the need for individual emails. So when one particular user creates or edits multiple records instead of separate email notifications I would like it all in one email. So is this possible while using SharePoint workflows? If it is possible and how would I go about expanding my current workflow to achieve this?
I have already asked this question in the dedicated SharePoint area to no prevail, I could really do with the help also if what I am asking is impossible then could someone at least say so.
Thanks very much to anyone who contributes and helps me with my problem.
If you are using SharePoint Designer , then this is not problem. This is because each workflow can access the data on which List Item the workflow is triggered.
However, this is definitely possible using a custom workflow or an event Receiver.
http://msdn.microsoft.com/en-us/library/ms437502(v=office.14).aspx