使用Exchange Web服务发送邮件
发送代码,Mail类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography.X509Certificates;
using System.Net;
using System.Net.Security;
using Microsoft.Exchange.WebServices.Data;
using System.Net.Mail;namespace Exchange
{public class Mail{private string sender;public string Sender{get{return sender;}set{sender = value;}}private string senderPw;public string SenderPw{get{return senderPw;}set{senderPw = value;}}private string ewsUrl;public string EwsUrl{get{return ewsUrl;}set{ewsUrl = value;}}private ExchangeVersion exVersion;public ExchangeVersion EXVersion{get{return exVersion;}set{exVersion = value;}}public Mail(string sender,string senderPw,string ewsUrl){this.sender = sender;this.senderPw = senderPw;this.ewsUrl = ewsUrl;}public Mail(){}public void Send(string title,string body,string[] receiver){ServicePointManager.ServerCertificateValidationCallback =delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };ExchangeService service = new ExchangeService(EXVersion);service.Credentials = new WebCredentials(this.Sender, this.SenderPw);service.Url = new Uri(this.EwsUrl);EmailMessage message = new EmailMessage(service);message.Subject = title;message.Body = new MessageBody();message.Body.BodyType = BodyType.HTML;message.Body.Text = body;message.ToRecipients.AddRange(receiver);message.Send();}public void Send(string title, string body, string receiver){ServicePointManager.ServerCertificateValidationCallback =delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { return true; };ExchangeService service = new ExchangeService(Microsoft.Exchange.WebServices.Data.ExchangeVersion.Exchange2013_SP1);service.Credentials = new WebCredentials(this.Sender, this.SenderPw);service.Url = new Uri(this.EwsUrl);EmailMessage message = new EmailMessage(service);message.Subject = title;message.Body = new MessageBody();message.Body.BodyType = BodyType.HTML;message.Body.Text = body;ExtendedPropertyDefinition xExperimentalHeader = new ExtendedPropertyDefinition(DefaultExtendedPropertySet.InternetHeaders,"X-Message-ID",MapiPropertyType.String);message.SetExtendedProperty(xExperimentalHeader, "XXXXXXXX");message.ToRecipients.Add(receiver);message.SendAndSaveCopy();}}
}
测试调用,Program类
using System;namespace Exchange
{class Program{static void Main(string[] args){ try{Exchange.Mail mail = new Exchange.Mail("邮箱用户名(不用带@xx.com)", "密码", "https://IP/EWS/exchange.asmx");mail.Send("Test邮件测试", "Test123", "test@qq.com");Console.WriteLine("发送成功");}catch (Exception ex){Console.WriteLine("发送错误:" + ex);}Console.ReadLine();}}
}