c#SmtpClient类无法使用gmail发送电子邮件

我无法使用我的gmail帐户发送电子邮件。我把头发拔了。

相同的设置在Thunderbird中可以正常工作。

这是代码。我也尝试过465端口,但没有运气。

SmtpClient ss = new SmtpClient("smtp.gmail.com", 587);

ss.Credentials = new NetworkCredential("username", "pass");

ss.EnableSsl = true;

ss.Timeout = 10000;

ss.DeliveryMethod = SmtpDeliveryMethod.Network;

ss.UseDefaultCredentials = false;

MailMessage mm = new MailMessage("donotreply@domain.com", "destination@domain.com", "subject here", "my body");

mm.BodyEncoding = UTF8Encoding.UTF8;

mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

ss.Send(mm);

继承人的错误

“ SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.5.1需要身份验证。有关更多信息,请参见“

继承人堆栈跟踪

   at System.Net.Mail.MailCommand.CheckResponse(SmtpStatusCode statusCode, String response)

at System.Net.Mail.MailCommand.Send(SmtpConnection conn, Byte[] command, String from)

at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception)

at System.Net.Mail.SmtpClient.Send(MailMessage message)

at email_example.Program.Main(String[] args) in C:\Users\Vince\Documents\Visual Studio 2008\Projects\email example\email example\Program.cs:line 23

at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)

at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

at System.Threading.ThreadHelper.ThreadStart()

回答:

您不会相信解决了我的问题的。

凭据属性

ss.Credentials = new NetworkCredential("username", "pass");

必须在之后声明

ss.UseDefaultCredentials = false;

所以最终的工作代码清单是

SmtpClient ss = new SmtpClient("smtp.gmail.com", 587);

ss.EnableSsl = true;

ss.Timeout = 10000;

ss.DeliveryMethod = SmtpDeliveryMethod.Network;

ss.UseDefaultCredentials = false;

ss.Credentials = new NetworkCredential("username", "pass");

MailMessage mm = new MailMessage("donotreply@domain.com", "destination@domain.com", "subject here", "my body");

mm.BodyEncoding = UTF8Encoding.UTF8;

mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

ss.Send(mm);

这是错误吗?

以上是 c#SmtpClient类无法使用gmail发送电子邮件 的全部内容, 来源链接: utcz.com/qa/397823.html

回到顶部