2017-04-20 970 views
0

当我试图通过我的C#代码发送邮件上面的错误显示。我已经搜索可能的所有解决方案,但我没有得到解决方案。我使用下面的代码:SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.7.57 SMTP;

MailMessage mail = new MailMessage("SenderMail",Email); 
     mail.IsBodyHtml = true; 
     mail.Subject = "An email from Office365"; 
     mail.Body = "<html><body><h1>Hello world</h1></body></html>"; 
     SmtpClient client = new SmtpClient("smtp.office365.com"); 
     client.Port = 587; 
     client.EnableSsl = true; 
     client.UseDefaultCredentials = false; // Important: This line of code must be executed before setting the NetworkCredentials object, otherwise the setting will be reset (a bug in .NET) 
     NetworkCredential cred = new System.Net.NetworkCredential("Sendermail", "Password"); 
     client.Credentials = cred; 
     client.Send(mail); 
+1

您是否100%确定凭据(用户:Sendmail,密码:密码)是否正确,包括大小写? – Neil

+0

是Neil I Cross通过登录我的账户进行检查@Neil –

+0

SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.7.57 SMTP;客户端未通过身份验证发送匿名邮件[MA1PR01CA0093.INDPRD01.PROD.OUTLOOK.COM] –

回答

0

如果你没有,那么我相信你可能需要启用客户端从您的Office365帐户发送。详情请参阅this page

+0

我已经阅读过这个,在我的编码中,你可以看到我已经完成了所有提到的事情。有没有像Gmail这样的设置,我们允许访问第三方应用程序发送电子邮件。 –

1

1-我相信您的代码中缺少以下内容。

client.DeliveryMethod = SmtpDeliveryMethod.Network;

2-不要将UseDefaultCredentials值设置为false。保持它的默认值。只需删除该行。

这对我有效。

+0

感谢您的回应,但它不起作用!同样的错误。 –

相关问题