如何使用Exchange Web Services发送包含text / plain和text / html的多部分电子邮件?

时间:2011-10-31 16:23:53

标签: c# exchangewebservices

我通过命令行使用wsdl工具生成了一个名称空间,并将其指向https://exchange-server/EWS/Services.wsdl

我可以使用以下代码成功发送电子邮件:

const string EWS_USERNAME = "user";
const string EWS_PASSWORD = "pass";
const string EWS_DOMAIN = "domain";
const string EWS_URL = "https://exchange-server/EWS/Exchange.asmx";

var ews = new ExchangeServiceBinding();
ews.Credentials = new NetworkCredential(EWS_USERNAME, EWS_PASSWORD, EWS_DOMAIN);
ews.Url = EWS_URL;

var email = new MessageType();
email.IsFromMe = false;
email.From = new SingleRecipientType();
email.From.Item = new EmailAddressType();
email.From.Item.EmailAddress = "from@example.com";

email.ToRecipients = new EmailAddressType[1] { new EmailAddressType { EmailAddress = "recipient@example.com" } };

email.Subject = "Subject";

email.Body = new BodyType();
email.Body.BodyType1 = BodyTypeType.HTML;
email.Body.Value = "<strong>Test</strong>";

var emailToSave = new CreateItemType();
emailToSave.Items = new NonEmptyArrayOfAllItemsType();

emailToSave.Items.Items = new ItemType[1] { email };
emailToSave.MessageDisposition = MessageDispositionType.SendAndSaveCopy;
emailToSave.MessageDispositionSpecified = true;

ews.CreateItemCompleted += new CreateItemCompletedEventHandler(ExchangeWebServices_CreateItemCompleted);

ews.CreateItemAsync(emailToSave, callbackState);

我的问题是如何发送包含HTML和纯文本正文的多部分电子邮件?

1 个答案:

答案 0 :(得分:3)

Exchange会自动生成您邮件的纯文本版本。你无需为此做任何事情。