仅在调试器中出现C#SMTP邮件错误5.5.1

仅在调试器中出现C#SMTP邮件错误5.5.1,c#,email,smtp,gmail,C#,Email,Smtp,Gmail,当我试图从我的C#应用程序发送电子邮件时,但仅当我在VisualStudioIDE中运行它时,才会出现以下错误 The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required 如果我构建并安装我的应用程序,我不会得到这个错误。我已经阅读了一大堆类似的问题,我检查了所有明显的东西,但没有现

当我试图从我的C#应用程序发送电子邮件时,但仅当我在VisualStudioIDE中运行它时,才会出现以下错误

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required
如果我构建并安装我的应用程序,我不会得到这个错误。我已经阅读了一大堆类似的问题,我检查了所有明显的东西,但没有现有的答案解决这个问题

System.Net.Mail SmtpClient and MailMessage
.NET Framework 4.5

Host: smtp.gmail.com
Port: 587
EnableSsl: true
UseDefaultCredentials: false
我知道我的电子邮件凭据是准确的,它与我安装应用程序后使用的凭据相同。试图从调试器发送电子邮件会引发身份验证错误

我也很确定这曾经奏效。我不知道它是什么时候开始失败的,当时我懒得去研究它,但它变得越来越令人沮丧。也许是我更新了Windows或VS导致的,我不知道

更新
我想澄清一下,因为我做了更多的测试。这个问题似乎也与所讨论的应用程序有关。为了做一些测试,我创建了一个简单的测试应用程序,它使用我的相同库来进行电子邮件报告,并且在调试器中运行良好。我甚至将我的应用程序中的实际方法复制到我的测试应用程序中,它们都能工作。因此,应用程序设置中肯定有什么原因导致了这一问题,但我无法找出原因。

我已经解决了这个问题,我想与全世界分享我的经验,以防这对其他人有所帮助。我不知道这些错误的实际原因,但我能够通过拨弄和调整应用程序的项目设置来解决它。起初,我认为可能是由于guid之间的冲突导致了垃圾邮件过滤器的关闭,所以我开始查看应用程序的项目设置。当我在那里的时候,我意识到我实际上没有为这个应用程序配置GUID,发布者的很多细节都是默认的。我将用于构建它的ISTool项目中的GUID复制到安装程序中,并在项目设置中填写了其他重要细节。这导致我的设置文件被重新创建,所以我不得不重新配置我的应用程序设置,但一旦完成,电子邮件就可以工作了。我不知道这是否是一个安全机制,以防止邮件垃圾邮件匆忙地扔在一起的项目,或者可能是因为没有GUID而被禁止。不管是什么原因,准确地填写项目信息似乎会有所不同


希望有一天这对其他人有所帮助:)

您的SSL证书是真实的(购买的)还是通过Visual Studio生成的不真实的?可能服务器正在检查这是否是真正的证书。我不确定这在这里是如何应用的。我使用所有“真实”服务与外部世界进行应用程序通信,而这一切都不依赖于我自己的SSL证书。为什么我在哪个上下文中执行应用程序(调试器与安装)很重要,即使它与此相关?事实证明,我似乎对此有着复杂的结果。我可以用一个测试应用程序在调试器中使它短暂工作,但从来没有用我的真实应用程序。现在,即使是在已安装的版本中,我的应用程序也无法发送任何电子邮件,尽管我的凭据和设置都很好。好了,我明白了为什么工作停止了。显然,设置MailClient参数的顺序很重要。在设置
凭据之前,需要将
UseDefaultCredentials
设置为
false
。不管是那个还是这个都是一个骗局,但它在修复之后立即开始工作。不过,我最初的问题仍然是个问题。