无法使用SmtpClient发送邮件

4

我希望使用SmtpClient类发送邮件,但它没有起作用。代码如下:

SmtpClient smtpClient = new SmtpClient();

smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential(obMailSetting.UserName, obMailSetting.Password);

smtpClient.Host = obMailSetting.HostMail;
smtpClient.Port = obMailSetting.Port;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.EnableSsl = obMailSetting.Connect_Security;//true
//smtpClient.UseDefaultCredentials = true;//It would work if i uncomment this line
smtpClient.Send(email);

代码出现异常:

SMTP服务器要求进行安全连接或客户端未经身份验证。服务器响应是:5.7.1 客户端没有经过身份验证。

我确定用户名和密码是正确的,代码有什么问题吗? 谢谢。


1
你尝试过在 NetworkCredential 的第三个参数中包含域名吗? - User.Anonymous
2个回答

1
你可以尝试这个:

你可以尝试这个:

 MailMessage mail = new MailMessage();
 mail.Subject = "Your Subject";
 mail.From = new MailAddress("senderMailAddress");
 mail.To.Add("ReceiverMailAddress");
 mail.Body = "Hello! your mail content goes here...";
 mail.IsBodyHtml = true;

 SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
 smtp.EnableSsl = true;
 NetworkCredential netCre = 
                  new NetworkCredential("SenderMailAddress","SenderPassword" );
 smtp.Credentials = netCre;

 try
  {
     smtp.Send(mail);                
  }
  catch (Exception ex)
  {   
    // Handle exception here 
  }

您可以尝试 this
在交换管理控制台中,选择服务器配置节点,选择Hub Transport和服务器名称。 在接收连接器窗格中,打开任何一个接收连接器(默认安装创建了2个),或者您可以为TFS创建一个新的连接器(我也尝试过这个方法并且成功)。 对于任何一个连接器,打开属性,在权限组选项卡上确保选择了匿名用户(默认情况下不会选择)。

或者

您也可以通过以下方式初始化 SmtpClient 来尝试 this

SmtpClient smtp = new SmtpClient("127.0.0.1");

基本上是与问题中相同的代码,那么这如何回答服务器返回“_5.7.1客户端未经身份验证_”的问题的解决方法呢? - Martin Liversage
是的,它几乎与mime相同。 @Arshad:你好朋友,可能是什么原因导致了这个异常? - hoangmeo325
@hoangmeo325,请查看更新后的答案。 - Arshad

1
服务器返回 5.7.1 客户端未经身份验证,但仅当您未将UseDefaultCredentials设置为true时。这表明您正在使用的NetworkCredential实际上是错误的。

用户名或密码错误,或者您需要指定域?您可以使用另一个构造函数来指定域:

new NetworkCredential("MyUserName", "MyPassword", "MyDomain");

或许你指定的用户没有在SMTP服务器上发送邮件所需的权限,但这时我会期望另一个服务器响应。


我有类似的问题,有人可以帮助我吗?http://stackoverflow.com/questions/25543233/unable-to-send-the-mailmessage-in-asp-net - Ramesh S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接