邮件发送与networking凭证为真正的Windows窗体不工作

我想做一个应用程序发送电子邮件在C#窗口application.I使用smtp服务器,但我不想设置networking凭据。 所以我把它设置为true,但是出现错误。

SMTP服务器需要安全的连接或者客户端没有被authentication。 服务器响应是:5.5.1需要身份validation。 了解更多信息

这里是代码:

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,我需要使用所有电子邮件服务提供商发送和接收邮件。那么,如何设置主机和端口?

Gmail使用端口587

 oClient.Port = 587; 

您可能还想要将UseDefaultCredentials设置为false,并明确声明用户名和密码。 通过声明它是真实的,你正试图使用​​你的Windows凭据login到你的Gmail帐户。

 oClient.UseDefaultCredentials = false; oClient.Credentials = new NetworkCredential("email@gmail.com", "password"); 

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

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

 oMail.To.Add(new MailAddress(txtTo.Text.Trim())); 

当您尝试从某些应用login时,Google可能会阻止某些应用或设备的login尝试。 你需要去你的Gmail的安全设置,并启用不那么安全的应用程序 。 这样你就可以从所有的应用程序login。 转到Allow less secure apps然后select允许让安全性较低的应用访问您的Google帐户。 看看this链接可能有用。