Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Please find my first web service client that i tried couple of months earlier that creates an e-mail item in the Sent Items folder. You can use Microsoft Visual Studio 2005 to create a simple Exchange Web Services client application like this.
1: using System;
2: using System.Net;
3: using System.Security.Cryptography.X509Certificates;
4: using System.Net.Security;
5:
6: // The ExchangeWebServices namespace was created by using Visual Studio // 2005 and the Add Web Reference wizard.
7: using ExchangeWebServices;
8:
9: namespace Devas_First_WebService
10: {
11: partial class Program
12: {
13: static void Main(string[] args)
14: {
15: ServicePointManager.ServerCertificateValidationCallback =
16: delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
17: {
18: // Replace this line with code to validate server
19: // certificate.
20: return true;
21: };
22:
23: // Identify the service binding and the user.
24: ExchangeServiceBinding esb = new ExchangeServiceBinding();
25: // Provide the Network credentials - username, password, domain
26: esb.Credentials = new NetworkCredential("<username>", "<password>", "<domain>");
27: // Provide the Exchange Web Service (URL)
28: esb.Url = @"https://<FQDN>/EWS/Exchange.asmx";
29:
30: // Create the CreateItem request.
31: CreateItemType createEmailRequest = new CreateItemType();
32:
33: // Specifiy how the e-mail will be handled.
34: createEmailRequest.MessageDisposition = MessageDispositionType.SaveOnly;
35: createEmailRequest.MessageDispositionSpecified = true;
36:
37: // Specify the location of sent items.
38: createEmailRequest.SavedItemFolderId = new TargetFolderIdType();
39: DistinguishedFolderIdType sentitems = new DistinguishedFolderIdType();
40: sentitems.Id = DistinguishedFolderIdNameType.sentitems;
41: createEmailRequest.SavedItemFolderId.Item = sentitems;
42:
43: // Create the array of items.
44: createEmailRequest.Items = new NonEmptyArrayOfAllItemsType();
45:
46: // Create a single e-mail message.
47: MessageType message = new MessageType();
48: message.Subject = "Daily Report";
49: message.Body = new BodyType();
50: message.Body.BodyType1 = BodyTypeType.Text;
51: message.Body.Value = "(1) Handled customer issues, (2) Saved the world.";
52: message.Sender = new SingleRecipientType();
53: message.Sender.Item = new EmailAddressType();
54: message.Sender.Item.EmailAddress = "user1@example.com";
55: message.ToRecipients = new EmailAddressType[1];
56: message.ToRecipients[0] = new EmailAddressType();
57: message.ToRecipients[0].EmailAddress = "user2@example.com";
58: message.Sensitivity = SensitivityChoicesType.Normal;
59:
60: // Add the message to the array of items to be created.
61: createEmailRequest.Items.Items = new ItemType[1];
62: createEmailRequest.Items.Items[0] = message;
63:
64: try
65: {
66: // Send a CreateItem request and get the CreateItem
67: // response.
68: CreateItemResponseType createItemResponse = esb.CreateItem(createEmailRequest);
69: ArrayOfResponseMessagesType responses = createItemResponse.ResponseMessages;
70: ResponseMessageType[] responseMessages = responses.Items;
71:
72: // Access the response messages.
73: foreach (ResponseMessageType respMsg in responseMessages)
74: {
75: if (respMsg.ResponseClass == ResponseClassType.Error)
76: {
77: throw new Exception("Error: " + respMsg.MessageText);
78: }
79: else if (respMsg.ResponseClass == ResponseClassType.Warning)
80: {
81: throw new Exception("Warning: " + respMsg.MessageText);
82: }
83:
84: // Check to determine whether the response message is the correct type.
85: if (respMsg is ItemInfoResponseMessageType)
86: {
87: ItemInfoResponseMessageType createItemResp = (respMsg as ItemInfoResponseMessageType);
88: ArrayOfRealItemsType aorit = createItemResp.Items;
89:
90: foreach (ItemType item in aorit.Items)
91: {
92: if (item is MessageType)
93: {
94: MessageType myMessage = (item as MessageType);
95: Console.WriteLine("Created item: " + myMessage.ItemId.Id);
96: Console.ReadLine();
97: }
98: // If needed add the logic to check and cast for all other types.
99: }
100: }
101: }
102: }
103: catch (Exception ex)
104: {
105: Console.WriteLine(ex.Message);
106: Console.ReadLine();
107: }
108: }
109: }
110: }
Reference: Creating an Exchange Web Services Client Application