乙方,需要在其他公司内部服务器做一个用Exchange发送邮件的小程序
之前的账号没了,分不多了,全给出来了
代码如下:
ExchangeVersion version = ExchangeVersion.Exchange2010;
ExchangeService service = new ExchangeService(version);
ServicePointManager.ServerCertificateValidationCallback = delegate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
service.Credentials = new NetworkCredential(setting.Account, setting.Password, setting.Domain);
service.TraceEnabled = true;
if (!String.IsNullOrEmpty(setting.Server))
service.Url = new Uri(setting.Server);
else
service.AutodiscoverUrl(setting.Address, new Microsoft.Exchange.WebServices.Autodiscover.AutodiscoverRedirectionUrlValidationCallback(url => true));
EmailMessage emessage = new EmailMessage(service);
emessage.Subject = message.Subject;
emessage.ToRecipients.AddRange(message.To.Select(o => o.Address));
emessage.Body = new MessageBody() { BodyType = BodyType.HTML, Text = (message.Body.Replace("\n", "<br />")).Replace("\r\n","<br />") };
emessage.SendAndSaveCopy();
如果用AutodiscoverUrl,直接就报错“The Autodiscover service couldn't be located"
他们IT帮配置的outlook上是可以正常发送邮件的,我发现他们设置了代理服务器,身份验证方式选的NTML。。我用代理服务器的地址加上“/EWS/Exchange.asmx”放进URL,报错就变成了 403 forbidden了。。。问甲方IT,他们IT说OUTLOOK能发就不管了。。。跪求