Microsoft.Exchange.WebServices.Data.ServiceResponseException:发送电子邮件时

时间:2014-05-01 08:24:49

标签: email exchangewebservices

我正在使用EWS托管API发送电子邮件。 我收到了Microsoft.Exchange.WebServices.Data.ServiceResponseException:EmailAddress或ItemId必须包含在请求中。

在Soap返回XML中,我看到ErrorMissingInformationEmailAddress:如果缺少EmailAddress(NonEmptyStringType)元素,则会发生此错误。

它在谈论哪个电子邮件地址?

使用Exchange 2007 SP1。 Exchange凭据是正确的,往返电子邮件地址是有效的电子邮件。 有任何想法吗?谷歌没有帮助。

相同的代码适用于其他Exchange Server。 service.AutodiscoverUrl()不适用于此服务器。

using Microsoft.Exchange.WebServices.Data;

protected void SendEwsMail()
    {
        //Trust all certificates
        System.Net.ServicePointManager.ServerCertificateValidationCallback =
            ((sender, certificate, chain, sslPolicyErrors) => true);

        var service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
        service.Credentials = new NetworkCredential("user@domain.com", "password");
        service.Url = new Uri("Url");

        var email = new EmailMessage(service);

        email.ToRecipients.Add("user@domain.com");

        email.From = new EmailAddress("user@domain.com");
        //email.ReplyTo.Add(recipient.FromAddress);
        email.Sender = new EmailAddress("user@domain.com");

        email.Subject = "test";

        // Send the message and save a copy.
        email.SendAndSaveCopy();
    }

1 个答案:

答案 0 :(得分:0)

事实证明,对于有问题的邮件服务器(MS Exchange),我需要使用此方法:

Writing an encrypted mail via Exchange Web Services

var item = new EmailMessage(service);
item.MimeContent = new MimeContent(Encoding.ASCII.HeaderName, content);
// Set recipient infos, etc.
item.Send();

这似乎是因为加密的MIME附件。使用Microsoft.Exchange.WebServices.Data.EmailMessage类的标准To,From,Subject属性无法正常工作。

虽然邮件服务器是SmarterMail时它可以正常工作。

SmarterMail 9.x是唯一支持Exchange Web服务(EWS)的邮件服务器(包括Microsoft Exchange)之一。 (来自http://blogs.smartertools.com/tag/exchange-web-services/

任何人都知道为什么SmarterMail的行为会与MS Exchange不同吗?