对Exchange 2007进行身份验证

时间:2011-03-24 19:02:51

标签: .net c#-4.0 exchange-server exchange-server-2007

我有一个简单的邮件实用程序,应该通过Exchange 2007服务器(安装在Windows Server 2008 R2 64位上)发送电子邮件,但它不起作用,在命令行上显示以下错误消息: “邮箱不可用。服务器响应是:5.7.1无法中继”。 我被告知我需要对服务器进行身份验证,但显然我没有正确执行。有什么建议? 我的代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Mail;

namespace SendMail
{
    class Program
    {
        static void Main(string[] args)
        {
            SmtpClient smtpClient = new SmtpClient("x.x.x.x", 25);
            NetworkCredential basicCredential = new NetworkCredential("username", "password", "domain");
            MailMessage message = new MailMessage();
            MailAddress fromAddress = new MailAddress("user@domain.com");
            smtpClient.Host = "x.x.x.x";

            smtpClient.UseDefaultCredentials = false;
            smtpClient.Credentials = basicCredential;
            message.From = fromAddress;
            message.Subject = "test message";
            message.Body = "test message";
            message.To.Add("user@domain.com");            
            try
            {
                smtpClient.Send(message);
                Console.WriteLine("Message sent successfully");
            }
            catch (Exception ex)
            {    
                //Error, could not send the message
                Console.WriteLine(ex.Message);
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

我测试过,你的代码运行正常。请检查您使用的帐户是否在Exchange中正确配置,或尝试使用其他帐户。

答案 1 :(得分:0)

除非您在Exchange服务器上创建允许开放中继的连接器,否则System.Net.Mail.SmtpClient将无法轻松地对Exchange进行身份验证。您可以将其限制为仅发送服务器的IP。但是,对于通过Exchange发送邮件,您会发现以下EWS dll是更好的通用解决方案。它与您的代码现在一样简单,但对Exchange更有效。

您可以使用以下DLL尝试Microsoft Exchange Web服务。

https://www.microsoft.com/en-us/download/details.aspx?id=42951

该对象非常简单,与使用System.Net.Mail相似。

以下是我从MSDN示例中修改的示例。

expect

EWS网址可能有点令人困惑。这还取决于您是否有权访问Exchange服务器。这是一些帮助。

https://msdn.microsoft.com/en-us/library/office/dn509511(v=exchg.150).aspx

如果您无法访问Exchange服务器,则会很有帮助。 http://nuanceimaging.custhelp.com/app/answers/detail/a_id/13098/~/determining-the-exchange-web-services-(ews)-url-for-the-sharescan-exchange

将最后一部分更改为Exchange.asmx,而不是Services.wsdl