2017-07-31 34 views
0

在发送电子邮件后,SMTP是否需要在C#中处理?即使没有附件,是否需要使用C#处理SMTP?

我得到SMTP认证错误,第二次应用程序启动时。我想知道是否需要处理SMTP。第一次在新电脑上不会发生,但如果同一个窗口打开两次,则会出现验证错误。这里是下面的代码。

try{ 
          MailMessage mail = new MailMessage(); 
          SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

          mail.From = new MailAddress("[email protected]"); 
          mail.To.Add("[email protected]"); 
          mail.Subject = "FeedBack"; 
          mail.Body = "Text "; 

          SmtpServer.Port = 587; 
          SmtpServer.EnableSsl = true; 
          SmtpServer.UseDefaultCredentials = false; 
          SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword"); 

          SmtpServer.Send(mail); 
          SmtpServer.Dispose(); 
         } 
         catch (Exception) 
         { 
          Application.Exit(); 
          this.Close(); 
         } 
        } 
+2

好的一般经验法则似乎是,如果一个类提供了一个dispose方法,它有一些需要处理的东西,你应该使用它!我不明白你会如何得到一个认证错误,虽然你有硬编码的证书工作_sometimes _...你能提供实际的错误信息吗? – Bridge

+1

如果你不想手动使用'using(SmtpClient SmtpServer = new SmtpClient(“smtp.gmail.com”)){/ *你的代码在这里* /}'语句。 – dcg

+0

@Bridge实际错误消息'SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应是:5.5.1需要身份验证' – Patrick

回答

0

根据您的错误信息,我可以建议该post. 还是应该允许使用您的邮件帐户对谷歌不够安全的应用。我复制了你的代码并修改了我的Gmail帐户。它的工作没有错误。你可以按照these steps允许你的表单应用程序访问你的Gmail帐户。

+0

我已经按照这些步骤进行了操作,并且最初解决了我的问题,现在不是这样。这是什么时候反馈表单再次打开后,尽管这些帖子中列出的所有步骤已经完成,但它仍会给我提供相同的验证错误。 每当一台新电脑在第一次运行时安装该软件,它就可以正常工作,但在第二次运行时会抛出此消息。 – Patrick

相关问题