3

我有一段发送电子邮件的代码.. 代码如下

这对我不起作用。这是一个远程 smtp 服务……我仔细检查了电子邮件网络访问是否正常……我可以使用 gui 登录,接收和发送电子邮件。

但是当我尝试通过代码来完成它时..它失败并显示消息......

{System.Net.Mail.SmtpException:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 未给出 AUTH 命令。

任何人都可以建议......而且他们没有暴露 EWS 即交换网络服务 ./.. 这是要走的路..

端口为 25,没有 SSL 或 TLS

Button b = sender as Button;
try
{
    MailMessage msg = new MailMessage(senderEmail, recieverEmail, "afdasfas", "safasfa");
    //MailMessage msg = new MailMessage(senderEmail, recieverEmail, subject, subject);
    System.Net.Mail.SmtpClient mailclient = new System.Net.Mail.SmtpClient(EmailSmtpServer, outgoingPort);
    System.Net.NetworkCredential auth = new System.Net.NetworkCredential(senderEmail, senderPassword);
    mailclient.Host = EmailSmtpServer;
    mailclient.UseDefaultCredentials = false;
    mailclient.Credentials = auth;
    mailclient.Send(msg);
    MessageBox.Show(b.Content + ":WORKED");
}
catch (Exception e4)
{
    MessageBox.Show(b.Content + ": " +e4.Message);
    MessageBox.Show(b.Content + ": " + e4.StackTrace);
}
4

3 回答 3

5

我不认为你想设置

mailclient.UseDefaultCredentials = true;

在此处阅读有关此选项的更多信息。


您还应该测试您是否可以通过该 smtp 服务器实际发送电子邮件。

尝试通过 telnet 连接并授权。还有很多服务可以让您在线发送测试消息(例如http://pingability.com/smtptest.jsp )。

于 2010-04-28T17:35:26.127 回答
1

System.Net.Mail.SmtpException:SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.0 未给出 AUTH 命令。

您正在尝试登录而不先发送AUTH命令。这就是为什么你的 web gui 会自动插入它自己的AUTH命令,但你当前的客户端应用程序没有收到你的命令来中继到服务器,但是服务器需要身份验证

于 2012-04-24T08:17:26.413 回答
0

也许你需要添加mailclient.EnableSsl = true;

于 2010-04-28T17:36:17.480 回答