为了账号安全,请及时绑定邮箱和手机立即绑定

在Windows窗体中使用网络凭据将邮件发送为true

/ 猿问

在Windows窗体中使用网络凭据将邮件发送为true

C#
三国纷争 2020-02-02 15:27:39

我想在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 回答

?
慕前端131612

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()));


查看完整回答
反对 2020-02-02
?
一只名叫tom的猫

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


查看完整回答
反对 2020-02-02

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信