在Windows窗体中使用网络凭据发送的邮件无法正常工作

时间:2015-09-09 09:27:29

标签: c# winforms smtpclient

我想在C#windows应用程序中执行发送电子邮件的应用程序。我使用的是smtp服务器,但我不想设置网络凭据。所以我把它设置为true。但是我得到了错误。

  

SMTP服务器需要安全连接,否则客户端不需要   认证。服务器响应为:5.5.1需要身份验证。   

了解更多信息

以下是代码:

SmtpClient oClient = new SmtpClient();
oClient.Host = "smtp.gmail.com";
oClient.Port = 25;
oClient.UseDefaultCredentials = true;
oClient.Credentials = new System.Net.NetworkCredential();
oClient.EnableSsl = true;
MailMessage oMail = new MailMessage();
oMail.To.Add(txtTo.Text.Trim());
oMail.From = new MailAddress("testmail@gmail.com");
oMail.Subject = txtSubject.Text;
oMail.Body = txtBody.Text;
oMail.IsBodyHtml = true;
oClient.Send(oMail);
MessageBox.Show("Mail Send");

这里我将主机设置为gmail.com,我需要使用所有电子邮件服务提供商发送和接收邮件。那么如何设置主机和端口?

2 个答案:

答案 0 :(得分:5)

gmail使用端口587

listofschoolname.hits.hits

您可能还想将$scope.listofschoolname = response; <label ng-repeat="ModelName in listofschoolname.hits.hits "> <input type="checkbox" ng-model="ModelName.checked" size="10"/> {{ModelName._source.Class}} </label> 设置为false并明确声明用户名和密码。通过声明它是真的,您正尝试使用Windows凭据登录您的Gmail帐户。

oClient.Port = 587;

此外,在gmail安全性中,您需要允许安全性较低的应用程序。

最后,您需要更改Mail.To的填充方式:

UseDefaultCredentials

答案 1 :(得分:3)

当您尝试从某个应用程序登录时,Google可能会阻止来自某些应用或设备的登录尝试。您需要转到gmail的安全设置,启用安全性较低的应用。这样您就可以从所有应用程序登录。转到Allow less secure apps并选择允许让不太安全的应用访问您的Google帐户。看看this链接可能有用。