2010-11-10 82 views
0

我正尝试连接到需要验证的smtp服务器。无法连接到需要验证的smtp服务器

这是我用来发送电子邮件的C#代码:

var smtpClient = new SmtpClient(); 
smtpClient.Host = _smtpServerHost; 
smtpClient.Credentials = new NetworkCredential(_username, _password); 
smtpClient.UseDefaultCredentials = false; 
smtpClient.Send(GetMessage()); 

发送函数引发的错误:

The SMTP server requires a secure connection or the client was not authenticated. 
The server response was: Must authenticate before sending mail 

有没有,我很想念连接到步smtp服务器?

我试图连接到我们正在运行的测试服务器,但没有奏效。我也尝试连接到smtp4dev。我可以连接到它,而不需要身份验证,但不是当我需要身份验证时。

+0

您确定您使用的凭据是正确的吗? – Oded 2010-11-10 19:33:28

+0

我正在使用身份验证,并且我不使用'smtpClient.UseDefaultCredentials = false'这行' - 你试过删除那个吗? – Buildstarted 2010-11-10 19:41:08

+0

您可以尝试直接连接到服务器telnet到端口25,并尝试验证http://www.computerperformance.co.uk/exchange2003/exchange2003_SMTP_Auth_Login.htm。或者,查看抛出的异常,特别是内部异常 – Artemiy 2010-11-10 19:56:45

回答

5

原来你需要设置UseDefaultCredentials = false之前你指定client.Credentials。如果在它不发送AUTH命令之后进行设置。

相关问题