使用带有用户名密码validation的smtp服务器发送电子邮件C#

我有一段代码发送电子邮件..inheritance人代码

这不适合我。 这是一个远程smtp服务…我双重检查电子邮件Web访问工作正常..我可以使用gui登录,接收和发送电子邮件。

但是,当我尝试通过代码来做它…它失败的消息……

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

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

端口是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); } 

我认为你不想设置

 mailclient.UseDefaultCredentials = true; 

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


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

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

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

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

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