2013年10月17日 星期四

Exchange Service Binding

使用Exchange Service Send Mail

C#

  1. public void SendMessage(ExchangeServiceBinding ewsServiceBinding, ItemIdType iiCreateItemid)
  2.  
  3.         {
  4.  
  5.             SendItemType siSendItem = new SendItemType();
  6.  
  7.             siSendItem.ItemIds = new BaseItemIdType[1];
  8.  
  9.             siSendItem.SavedItemFolderId = new TargetFolderIdType();
  10.  
  11.             DistinguishedFolderIdType siSentItemsFolder = new DistinguishedFolderIdType();
  12.  
  13.             siSentItemsFolder.Id = DistinguishedFolderIdNameType.sentitems;
  14.  
  15.             siSendItem.SavedItemFolderId.Item = siSentItemsFolder;
  16.  
  17.             siSendItem.SaveItemToFolder = true;
  18.  
  19.  
  20.  
  21.  
  22.  
  23.             siSendItem.ItemIds[0] = (BaseItemIdType)iiCreateItemid;
  24.  
  25.             SendItemResponseType srSendItemReponseMessage = ewsServiceBinding.SendItem(siSendItem);
  26.  
  27.             if (srSendItemReponseMessage.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Error)
  28.  
  29.             {
  30.  
  31.                 Console.WriteLine("Error Occured");
  32.  
  33.                 Console.WriteLine(srSendItemReponseMessage.ResponseMessages.Items[0].MessageText);
  34.  
  35.             }
  36.  
  37.             else
  38.  
  39.             {
  40.  
  41.                 Console.WriteLine("Message Sent");
  42.  
  43.             }
  44.  
  45.         }
  46.  
  47.  
  48.  
  49.         public string SendMail_ex2007(String Sender, String reciver, String subject, String content)
  50.  
  51.         {
  52.  
  53.  
  54.  
  55.             ExchangeServiceBinding esb = new ExchangeServiceBinding();
  56.  
  57.             esb.Url = "https://mail.xxx.com/EWS/Exchange.asmx";
  58.  
  59.             servicea = esb;
  60.  
  61.             //System.Net.ServicePointManager.ServerCertificateValidationCallback =
  62.  
  63.             System.Net.ServicePointManager.ServerCertificateValidationCallback = (Object obj, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors errors) => true;
  64.  
  65.             esb.Credentials = new NetworkCredential("USERNAME", "PASSWORD", "SMTP");
  66.  
  67.             MessageType emailMessage = new MessageType();
  68.  
  69.             emailMessage.From = new SingleRecipientType();
  70.  
  71.             //set up a single sender
  72.  
  73.             //寄件者
  74.  
  75.             emailMessage.From.Item = new EmailAddressType();
  76.  
  77.             emailMessage.From.Item.EmailAddress = Sender;
  78.  
  79.             //標題
  80.  
  81.             emailMessage.Subject = subject;
  82.  
  83.             emailMessage.Body = new Microsoft.ServiceModel.Channels.Mail.ExchangeWebService.Exchange2007.BodyType();
  84.  
  85.             emailMessage.Body.BodyType1 = BodyTypeType.Text;
  86.  
  87.             //本文
  88.  
  89.             emailMessage.Body.BodyType1 = BodyTypeType.HTML;
  90.  
  91.             emailMessage.Body.Value = content;
  92.  
  93.             //將email寄出
  94.  
  95.             emailMessage.Sender = new SingleRecipientType();
  96.  
  97.             emailMessage.Sender.Item = new EmailAddressType();
  98.  
  99.             emailMessage.Sender.Item.EmailAddress = Sender;
  100.  
  101.             emailMessage.ToRecipients = new EmailAddressType[1];
  102.  
  103.             emailMessage.ToRecipients[0] = new EmailAddressType();
  104.  
  105.             emailMessage.ToRecipients[0].EmailAddress = reciver;
  106.  
  107.             emailMessage.Sensitivity = SensitivityChoicesType.Normal;
  108.  
  109.             //建立附件
  110.  
  111.             ItemIdType iiCreateItemid = CreateDraftMessage(esb, emailMessage);
  112.  
  113.             //iiCreateItemid = CreateAttachment(esb, iiCreateItemid);
  114.  
  115.             SendMessage(esb, iiCreateItemid);
  116.  
  117.             return "sendok";
  118.  
  119.         }
  120.  
  121.  
  122.  
  123.         protected void Button1_Click(object sender, EventArgs e)
  124.  
  125.         {
  126.  
  127. SendMail_ex2007("SenderName", "xxx@gmail.com", "smtp.xxx.com", "subject", "Content");
  128.  
  129.         }

沒有留言:

張貼留言