Reading Exchange 2003 WebDAV custom properties with EWS after upgrading to Exchange 2010 - exchange-server

I have an old Exchange 2003 server that we connected to via WebDAV. We had one app using it and in it we were setting some custom properties to appointments in the DAV namespace like DAV:OrderId, where OrderId is the name of the custom property.
Now we're going to move the mailbox to Exchange 2010 to start with and since there's no WebDAV support for it, I can't find a way how to read that custom property with Managed EWS (Exchange Web Services).
I tried getting them with searching through
DefaultExtendedPropertySet.Common
and
DefaultExtendedPropertySet.PublicStrings
collections, but of course they're not there.
Our app kind of needs those properties to work.
Anyone have any ideas?

Sorry I can't be more specific here, but I've not wanted to grab any custom properties off Exchange items. However, there is a way to get MAPI props in EWS, and there may be a way to dig out the custom props as well. It's worth a look. Start here, and let us know if you work it out!

Well I found what I was doing wrong.
By using MFCMapi on the Exchange 2003 server I was able to see that the actual full property name is "DAV:OrderId" and not just "OrderId". It's namespace is DefaultExtendedPropertySet.PublicStrings. So just use those two pieces of information when querying with EWS and you're good to go.

Related

Changing MS Exchange Settings through API (rather than dashboard)

I am new to Microsoft Exchange Server(2016). I am trying to fetch or change Exchange server mail spam filter settings using API call through the code. However, I have not come across any documentation that helps me with this. What would be the best way to do this? If someone can share documentation with me, it will be great.
If you want to change server setting then you will need to use the Exchange Management Shell cmdlets which you can call from Managed code using something like https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/ff326159(v%3Dexchg.140)
The specific cmdlets and examples for the AntiSpam settings can be found in https://learn.microsoft.com/en-us/exchange/antispam-and-antimalware/antispam-protection/configure-antispam-settings?view=exchserver-2019

Where can I find which properties are available in each Exchange Web Services version?

First of all, I have pretty much no experience with developing Exchange Web Services-based applications.
I am developing an application that uses EWS Managed API to connect to an Exchange server. I need to support multiple Exchange versions, as I can't know in advance what version the server I'll be connecting to is running.
I was reading this article: https://msdn.microsoft.com/en-us/library/office/dd633705(v=exchg.80).aspx, and in the Unsuccessful Versioning part, it's written:
The EWS Managed API will throw an exception if the example is run because the IsAssociated property on the EmailMessage object is not available in Exchange 2007 SP1.
My question is: is there a list of which properties are available (or unavailable) in each Exchange version?
You have to keep in mind that the EWS ExchangeVersion (schema version) is not the same as the Service Version, on which Exchange is running.
Microsoft says:
[...]applications designed against earlier versions of EWS will work, in most cases, with later versions of EWS, and applications that target later versions of EWS will work if the same functionality was included in an earlier version.
You can find further information about schema versioning and your requested feature set per schema version here: https://msdn.microsoft.com/en-us/library/office/dn741586(v=exchg.150).aspx
There is no list of properties that i know off probably the closest would be if you look at the EWS Managed API source https://github.com/OfficeDev/ews-managed-api/tree/154dbc66ac018d861c73ce489839cd9f58a1b0cd/ComplexProperties .
There are strongly typed properties which Microsoft have made available on the EWS objects and you can also access the underlying extended properties these strongly type properties refer to (or that no strongly type property exists). Just because a property isn't strongly typed in a certain version of EWS doesn't mean its not accessible its just you need to use another method more on that https://msdn.microsoft.com/en-us/library/office/dn467898(v=exchg.150).aspx
There is a list of which EWS operations are available in which versions https://msdn.microsoft.com/en-us/library/office/bb409286(v=exchg.150).aspx which is generally the more important. (Eg FAI Folder Associated Item traversals where first introduced in 2010 hence why isAvailble isn't in 2007).

MAPI access to Exchange Server 2010 vs EWS

I am trying to access some room mailbox information from a web application while connecting to Exchange Server 2010. Using the EWS, I am unable to get some AD properties such as room capacity or customly defined properties for the given rooms. However, querying directly through LDAP is not an option since the web application is external and has no access to any domain controllers.
From what I saw, a viable option would be to use MAPI in order to get the contacts from Exchange and then look for the given properties. In order to perform this kind of integration, I have the following questions:
1) Is it possible to use a standalone version of the MAPI interfaces - i.e. without Outlook installed - ?
2) Can MAPI client functions and objects be used from a server environment - i.e. no user input available - ?
3) Is there any way to use MAPI from managed code - C# or others - ?
4) Are there any other options of getting the aforementioned properties from Exchange?
1, 2 & 3) Yes. I use Redemption library for this
4) I only know about EWS & Mapi, so I think there is no other way.
Note: Before going ahead you should be sure these information are available from MAPI. Because Exchange is different from Active Directory.
This SO question may help you.

Best development technologies to use to connect to exchange server, discover DAGs, creating mailbox data bases etc... (preferably in C#. .net)

I am new to Development with Exchange server. I am trying to do things like conencting to exchange server, discovering and creating Database Availablity Groups (DAG), discovering and creating mail box databses within a DAG etc... programmatically.
I see there are few PowerShell cmdlets to do the above things. I am wondering what is the best development technology to use for above things? Can i use EWS Manamgement API?
the technology should be compatible with Exchange Server 2010 and 2013 and preferably .net (C# - please note that i am trying to manage remote exchange servers)
regards,
Dreamer
The only option to manage exchange server is wrapping exchange management shell cmdlets in c# and invoking them.
Please see http://social.msdn.microsoft.com/Forums/en-US/exchangesvrdevelopment/thread/155504b3-ffe3-4bdf-887a-1e61842a8697 for more details.
thank you,
Dreamer

Standard Signature a Text in a Message using Exchange Server

Anyone know how to do this without using a third party program? If there no way to do it with a add-on someone can recommend one?
EDIT: I need to add this in the server so all users have the same signature.
Thanks
You need to create your own exchange message sink to do this. Here's a classic VB example from MS KB:
http://support.microsoft.com/kb/317327
and a VB Script one:
http://support.microsoft.com/kb/317680
And lots of goodness from MSDN about Exchange 2003 Transport Event Sinks:
http://msdn.microsoft.com/en-us/library/ms526223(EXCHG.10).aspx
If you're running Exchange 2007 then you can use Transport Rules:
http://msexchangeteam.com/archive/2006/12/12/431879.aspx
http://www.msexchange.org/tutorials/Using-Transport-Rules-Creating-Disclaimers-Exchange-Server-2007.html
We used CodeTwo-s Exchange rules for a while on Exchange 2003.
However there is a known problem with it: if the messages stay in the queue for 2-3 minutes, the Exchange itself sends out the message without the footer. Most of the times it's not a problem, but we have something like 700 people in our organization. If there are a lot of emails and some of them contains attachments, then the virus scanner stops them for a while (MS Antigen).
Otherwise it's a perfect solution if you have a smaller group of users to manage.
From other point of view: our users like to have some kind of control over the signature. We generated them and put it to their Outlooks. They like it that they know and see that the signature is there and how it looks like.

Resources