Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# windows窗体中网络凭据为true的邮件发送不工作_C#_Winforms_Smtpclient - Fatal编程技术网

C# windows窗体中网络凭据为true的邮件发送不工作

C# windows窗体中网络凭据为true的邮件发送不工作,c#,winforms,smtpclient,C#,Winforms,Smtpclient,我想在C#windows应用程序中创建一个发送电子邮件的应用程序。我使用了smtp服务器,但不想设置网络凭据。所以我把它设为真。但是我得到了错误 SMTP服务器需要安全连接,或者客户端未连接 认证的。服务器响应为:需要5.5.1身份验证。 了解更多信息,请访问 代码如下: SmtpClient oClient = new SmtpClient(); oClient.Host = "smtp.gmail.com"; oClient.Port = 25; oClient.UseDefaultCred

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

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

gmail使用587端口

oClient.Port = 587;
您可能还希望将
UseDefaultCredentials
设置为false,并显式声明用户名和密码。如果声明为真,则表示您正试图使用windows凭据登录您的gmail帐户

oClient.UseDefaultCredentials = false;
oClient.Credentials = new NetworkCredential("email@gmail.com", "password");
此外,在gmail安全中,您需要允许不太安全的应用程序

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

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

当您尝试从某些应用程序登录时,谷歌可能会阻止某些应用程序或设备的登录尝试。你需要转到gmail的安全设置并启用不太安全的应用程序。这样您就可以从所有应用程序登录。转到并选择允许不太安全的应用程序访问您的Google帐户。查看链接可能有用。

您是否正在尝试使用windows/AD身份验证登录gmail?你需要为gmail使用用户名和密码。