无法使用ASP.net向Exchange服务器上的本地网络外的收件人发送电子邮件

时间:2012-03-21 19:31:46

标签: asp.net email sendmail exchange-server exchangewebservices

我正在使用Web窗体开发一个ASP.NET应用程序,而且我对从Microsoft Exchange Server帐户发送电子邮件(我认为是微不足道的)问题感到磕磕绊绊。

我使用ExchangeService类(使用Microsoft EWS API)和AutodiscoverUrl函数连接到Exchange服务器。

这是我的代码:

protected void Button2_Click(object sender, EventArgs e)
{
   string from = "myemail@myexchangeserver.com";
   string to = "recipient@email.com";

   ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
   service.AutodiscoverUrl(from);

   EmailMessage message = new EmailMessage(service);
   message.Subject = "Email Subject";
   message.Body = TextBoxMessage.Text;
   message.ToRecipients.Add(to);
   message.Save();

   message.SendAndSaveCopy();
}

问题是我只能向本地电子邮件地址发送电子邮件,例如从Exchange服务器发送电子邮件(仅来自我公司的地址)。发送到“外部”电子邮件(例如gmail)不起作用,尽管SendAndSaveCopy调用不会抛出任何异常。

我应该提一下,这只适用于我公司本地网络内的开发服务器。如果我断开与本地网络的连接,我将无法再连接到Exchange服务器并抛出异常。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

原来我的服务器不接受AutodiscoverUrl,我不得不手动设置凭证到emailaccount与 service.Credentials =新的WebCredentials(“userName”,“password”,“Domain”);

感谢您的评论,这确实有帮助!