MS Exchange Web Service Managed API
MS Exchange Web Service Managed API를 이용하면 EWS를 쉽게 이용할 수 있다. 아는게 없어 SOAP 정보를 하나 하나 분석해가며 사용했던 기억이 새록 새록..여기서 API를 다운로드하고 실행하면 Program Files\Microsoft\Exchange\Web Services 폴더에 1.2와 2.0 버전의 API가 설치된다. 2.0 폴더의 Microsoft.Exchange.WebServices.dll 을 프로젝트에 참조하고 시작한다.
// 기본 버전은 Exchange2010_SP2 이다. ExchangeService service = new ExchangeService( ExchangeVersion.Exchange2007_SP1) { Credentials = new WebCredentials("id", "pwd", "domain"), Url = new Uri("http://contoso.com/EWS/exchange.asmx") }; // 연락처 폴더를 바인딩. var contacts = Folder.Bind(service, new FolderId(WellKnownFolderName.Contacts)); FindItemsResults- findResults = service.FindItems( WellKnownFolderName.Contacts, new ItemView(contacts.TotalCount)); foreach (var each in findResults) { if (each is Contact) { Contact contact = each as Contact; // contact 변수를 이용해 연락처 정보를 가져온다. } }
위 코드에서는 연락처 정보를 가져왔지만 (WellKnownFolderName.Contacts), 어떤 폴더를 바인딩 하냐에 따라 메일, 캘린더, 작업 등 다양한 아이템들을 가져올 수 있다. 참고로 WellKnownFolderName 구조체의 정의는 다음과 같다.
namespace Microsoft.Exchange.WebServices.Data { public enum WellKnownFolderName { Calendar = 0, Contacts = 1, DeletedItems = 2, Drafts = 3, Inbox = 4, Journal = 5, Notes = 6, Outbox = 7, SentItems = 8, Tasks = 9, MsgFolderRoot = 10, [RequiredServerVersion(ExchangeVersion.Exchange2007_SP1)] PublicFoldersRoot = 11, Root = 12, JunkEmail = 13, SearchFolders = 14, VoiceMail = 15, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] RecoverableItemsRoot = 16, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] RecoverableItemsDeletions = 17, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] RecoverableItemsVersions = 18, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] RecoverableItemsPurges = 19, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] ArchiveRoot = 20, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] ArchiveMsgFolderRoot = 21, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] ArchiveDeletedItems = 22, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] ArchiveRecoverableItemsRoot = 23, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] ArchiveRecoverableItemsDeletions = 24, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] ArchiveRecoverableItemsVersions = 25, [RequiredServerVersion(ExchangeVersion.Exchange2010_SP1)] ArchiveRecoverableItemsPurges = 26, } }
댓글 없음:
댓글 쓰기