Skip to main content

Posts

Showing posts from August, 2012

MEC from a developers perspective

The Microsoft Exchange Conference or (MEC as it is affectionately know) is being held in Orlando next month for the first time in 10 years. www.mecisback.com   . 10 years is a long time and in Technology even longer for example since the last MEC was held we have had Blackberry's (started to appear around the last time MEC was held and starting to disappear now) First IPhone June 2007 , ITunes and pretty much the whole Apps concept First Windows Smart Phone (Pocket PC 2002) Social Networking FaceBook Feb. 4, 2004 Twitter November 4, 2008  The term wave is used in the IT industry to convey the way in which different technologies wash through the rest of our lives and affect the way in which we work and relate to the world in general. In the later part of 2012 we are on the crest of another wave with all the following on the way or released already. Windows 2012 Exchange 2012 Surface Windows 8 IPhone 5 and Android Tablets and phones  The great thing about technic

How To Series Sample 7 : Reporting on Calendar Appointments with Attachments in EWS and Powershell

The following sample demonstrates how you can query all the calendar appointments in a Mailbox and report on those appointments that have attachments, the number of attachments on each item, attachment Size and largest attachment details. Its uses the following AQS query to limit the result set EWS returns to only those appointments with attachments (this means the script will only run against Exchange 2010 or Exchange Online) $AQSString = "hasattachment:true" The script then does a batch GetItems to load all the details about attachments using the LoadPropertiesFromItems method. It then produces a report like the following To Run the script make sure you change the following variable to the mailbox you want to run against. $MailboxName = "user@domain.com" I've put a downloadable copy of this script here the script itself looks like. $MailboxName =  "user@domain.com"       $rptcollection = @()   ## Load Managed API dll      Ad

Using Custom MailTips to provide extra information in EWS

The directory functionality in Exchange Web Services can be a little limited and so within Exchange 2010 without using LDAP to access Active Directory directly there is no direct way to access custom Resource properties on Meeting Rooms or where you want to access Custom Attributes. However using Custom MailTips is one way of working around this issue (although it means duplicating the information). For example to Create a Custom Mail Tip for a mailbox you use set-mailbox meetingRoom2 -MailTip "Expresso Machine" Then in EWS you can use this to retrieve the MailTip GetMailTipsType gmType =  new  GetMailTipsType();   gmType.MailTipsRequested =  new  MailTipTypes();   gmType.MailTipsRequested = MailTipTypes.CustomMailTip;   gmType.Recipients =  new  EmailAddressType[1];   EmailAddressType rcip1 =  new  EmailAddressType();   rcip1.EmailAddress =  "MeetingRoom2@domain.com" ;   gmType.Recipients[0] = rcip1;   EmailAddressType sendAs =  new  EmailAddr

POX based Autodiscover clients and the Exchange 2013/Office365 preview

The big thing is the past week or so has been the release of the Exchange 2013 preview and in the cloud world the Office365 (Exchange Online 2013) preview. One of the new things in the Auto-discover response if your using one of these is the EXHTTP node that gets returned eg I haven't quite found where this node is documented yet but if your creating Outlook Anywhere Profiles programmatically against the Office365 preview then the Server info from this node is important for building a Outlook Anywhere profile.  If your using your own POX based Auto-discover client you won't get access to this new information unless you set the UserAgent so the request looks likes its coming from Outlook. eg String snServerName = @ "https://autodiscover-s.outlook.com/autodiscover/autodiscover.xml" ;   String OAProxy =  "" ;   String OAProxy1 =  "" ;   String ProxyCertName =  "" ;   String ProxyCertName1 =  "" ;   String Profil
All sample scripts and source code is provided by for illustrative purposes only. All examples are untested in different environments and therefore, I cannot guarantee or imply reliability, serviceability, or function of these programs.

All code contained herein is provided to you "AS IS" without any warranties of any kind. The implied warranties of non-infringement, merchantability and fitness for a particular purpose are expressly disclaimed.