使用 CDO 发送 gmail:一些帐户产生 "message could not be sent to SMTP server. transport error 0x80040217. server response not available"

Sending gmail using CDO: Some accounts produce "message could not be sent to SMTP server. transport error 0x80040217. server response not available"

我有一个典型的 “CDO gmail 电子邮件发送” 宏。它已经可靠地工作了几年。

我使用备用的 gmail 帐户作为发送邮件的地址。我想和一些人分享这个宏。所以我将使用不同的 gmail 地址作为发件人。

我还有其他一些备用的 gmail 帐户,还有一些人已经注册了一个帐户并给了我用户名和密码作为发送地址添加到宏中。

我有10个账号,7个是我的,3个是别人注册的。所有工作正常手动使用。三个使用宏,七个不使用。

据我所知。都有相同的设置。这包括 “不太安全的应用程序访问” 的不安全设置。

这些帐户在过去两年的不同时间注册。

其中一个无效的帐户最近由之前没有帐户的人注册。其中一个有效的帐户几乎每天都在手动和使用宏使用两年。

我家有两个人同时注册了两个账号。两年来,它们一直以大致相同的程度正常/手动使用,但以前没有使用我的宏。一个帐户在宏中有效,另一个帐户无效。

这些事实向我表明,非工作帐户并未因涉嫌垃圾邮件而被阻止。哪些帐户有效,哪些无效似乎是随机的。

下面是宏的简化版本。 (我通常可以使用 465 或 25 作为 smtpserverport。结果几乎总是与两者相同。只有极少数情况下,一个可以工作而另一个不能。这似乎取决于进行尝试的位置)。

我得到的结果相当一致,包括使用来自不同位置和不同 IP 地址的宏。

当我使用来自新位置的帐户时,我偶尔会收到所有帐户的安全警告,但我总是确认“是我”。执行此操作后,我在该位置使用该帐户时再也不会收到安全警告。出现这样的警告后,该帐户立即被暂时封锁,但在我确认后解除封锁“是我”

其中三个地址几乎总是与宏一起工作。在极少数情况下它们不起作用,第二次尝试通常会成功。 (这些工作地址是我在过去两年的某个时候注册的。)

其中七个地址永远无法与宏一起使用。 .Send 点的错误信息总是一样的:

-2147220975:
Die Nachricht konnte nicht an den SMTP-Server gesendet werden. Der Transportfehlercode lautet 0x80040217. Die Serverantwort lautet not available

大概的英文翻译:

-2147220975:
The message could not be sent to the SMTP server. The transport error code is 0x80040217. The server response is not available

(对于下面的 运行 宏,您必须编辑以提供真实的 gmailAddress@gmail.com 、真实的 gmailPassword 以及将电子邮件发送到 .To 和 .cc 的真实位置)

Sub Run_gMail_Send_Simplified() ' Run this macro with a valid   gmailAddress@gmail.com   and    gmailPassword   and real places to send the Email to at the .To and .cc place
 Call gMail_Send_Simplified("gmailAddress@gmail.com ", "gmailPassword")
End Sub


Sub gMail_Send_Simplified(ByVal UsrNme As String, ByVal PsWd As String) '
   With CreateObject("CDO.Message") '                  ' -------------------*  with LCDCW Library ( Linking Configuration Data Cods Wollups)  which are  used and items configured for the Exchange at Microsoft's protocol therof
    Dim LCD_CW As String: Let LCD_CW = "http://schemas.microsoft.com/cdo/configuration/"
     .Configuration(LCD_CW & "smtpusessl") = True '
     .Configuration(LCD_CW & "smtpauthenticate") = 1
    '  ' Sever info
     .Configuration(LCD_CW & "smtpserver") = "smtp.gmail.com" '
    '  The mechanism to use to send messages.
     .Configuration(LCD_CW & "sendusing") = 2
     .Configuration(LCD_CW & "smtpserverport") = 25 ' or 465
     .Configuration(LCD_CW & "sendusername") = UsrNme   '
     .Configuration(LCD_CW & "sendpassword") = PsWd
    ' Optional - How long to try                      ( End remote SMTP server configuration section )
     .Configuration(LCD_CW & "smtpconnectiontimeout") = 30 '
    ' Intraction protocol is Set/ Updated
     .Configuration.Fields.Update '
    'End With                                          ' -------------------* End with LCDCW Library ( Linking Configuration Data Cods Wollups)  which are  used and items configured for the Exchange at Microsoft's protocol therof
    ' Data to be sent
    .To = "mrlotus123@somemail.com"
    .cc = "billandben@someuveremail.com"
    .BCC = ""
    .from = """gMail_Send_Simplified"" <""" & UsrNme & """>"
    .Subject = "Hello from  " & UsrNme & "   using  gMail_Send_Simplified"     '
    .TextBody = "Hi" & vbNewLine & vbNewLine & "Testing. Please ignore this EMail"
    ' Do it
     On Error GoTo Bed                                                                             ' Intended to catch a possible predicted error in the next line when running the routine
      .send
     On Error GoTo 0
    Debug.Print "Done " & Format(Now(), "hh mm") & "    with Username:  " & UsrNme & vbCr & vbLf
    End With '                                                       End With  CreateObject("CDO.Message") (Rem 1 Library End =======#
Exit Sub
Bed:
 Debug.Print "Fail " & Format(Now(), "hh mm") & "    with Username:  " & UsrNme & vbCr & vbLf & "  " & Err.Number & ":  " & Err.Description & vbCr & vbLf
End Sub

除了注册帐户和挑选有效的帐户外,还有什么建议吗?

有没有我可能遗漏的设置?

问题也发布在这里: https://support.google.com/mail/thread/17437986?hl=en&authuser=5

我已经解决了问题,所以我分享解决方案。

我现在已经将情况从 10 个帐户中的 3 个工作改善为 11 个帐户中的 11 个工作。

以下是针对遇到类似问题的任何其他人的解决方案详细信息。我建议从解决方案 _4) 开始,因为这是最快的。如果这不能解决问题,您将需要查看其他的。其他的可能比较费力。

_1 旧帐户中的一件奇怪的事情,它最近在我的程序中不起作用,而且我肯定已经多次检查过是否启用了不太安全的应用程序。

这个帐户的收件箱中仍然有许多旧的典型电子邮件警告,这些警告来自于我尝试执行诸如在不同位置登录之类的操作。 (这通常会导致临时阻塞,或重置 Less Secure Apps Off,直到您确认“是的,那是我”)。我的回答都是“是的,是我”,至少我对此有 98% 的把握——它们都被阅读了,所以我不太可能忽略它们

尽管如此,我费力地重新阅读了电子邮件警告,并按照几乎总是确认我已经回答的 link 进行操作,并且任何给定的 link 设置都表明它确实是设置为开。 有一个例外:link 显示设置已关闭。仍在查看任何其他 link 或查看该帐户设置显示它已打开。但我还是打开了它,之后该帐户在我的程序中再次运行。

我注意到警告中的所有 link 都是唯一的,因为它们包含特定于引发警告的事件的信息。对可能的错误的一种解释是,不知何故,答案警告被设置回未回答,从而阻止了帐户。出于某种原因,验证检查可能基于一个动态过程,该过程具有链中的所有警告,因此所有警告都必须回答是。这是有道理的,因为您可以在以后更改答案。解决方法是重新回答所有旧警告。在一些旧帐户中,我已经丢弃了旧的电子邮件警告,所以我认为我无法再次回答,这样该帐户将继续被阻止,尽管显示它不是。但奇怪的是,在垃圾文件夹中,尽管默认设置只保留垃圾 30 天,但所有旧警告都在那里...... https://imgur.com/thNdDaV ......非常奇怪,在该屏幕截图中有条目可以追溯到 2018 年初,尽管事实上它那里明确指出垃圾在 30 天后被删除。我丢弃的其他东西不见了。 以后,为了安全起见,我会存档而不是删除警告邮件,或者至少存储其中给出的 link 以检查和重新设置 Less Secure Apps。

_2 设置突然(正确地)显示为关闭,允许将其设置为打开。另一个旧帐户,最近在我的程序中不起作用,而且我肯定多次检查过 Less Secure Apps On,突然显示 Less Secure Apps Off。然后我打开它,该帐户在我的程序中工作。这可能是我在查看其他帐户中的效果时由某些“交叉线”效果间接引起的。这个的寓意是不要只检查一次设置,因为稍后它可能会无缘无故地改变。

_ 3)我在原文中提到post,我的个人电话不能再用于验证新帐户,(gmail只允许少数使用短信确认-他们故意不说如何许多)。大多数情况下仍然如此。在我实验期间的一次随机尝试中,它奏效了。然后新帐户也可以在我的程序中使用。 – 因此我现在有 11 个人中有 11 个在工作,而不是 10 个中的 10 个。

这里再次得出类似的结论:不要依赖静态的情况,某些外部事物可能会产生一些影响,让您在短时间内做一些通常不可能的事情。

_4) 链接到错误的帐户。这主要发生在我开设其他账户时,但偶尔也会发生在我只开设一个账户的情况下。

例如:我收到一个有效的警告,基于我在一个帐户上所做的一些 activity:https://imgur.com/VTAJOWc , I give it the OK, https://imgur.com/mKskkzx , and I then see a notice informing me that the Less Secure Apps has been set to Off, https://imgur.com/9bNePXf . So I follow the link for further info: https://imgur.com/LpGQYlj , and there after I follow a link to turn Less Secure Apps back on, https://imgur.com/WuMjPml . So far so good – note the account shown in the coloured ball top right is the correct one: https://imgur.com/yj09MsX

现在变得有趣了:我最终进入了错误的帐户:https://imgur.com/T050wP4

这很容易被忽视。这里的解决方案是忽略给出的 links 并直接转到正确帐户的设置,最好是在收到警告后不久。如果您不这样做,那么您不仅可能无法设置正确的帐户,而且还可能会产生另一个不良影响:有时跟随 (“crossed”) link 的行为似乎会引发其他帐户的零星警告和设置更改!!!

这一切都在向我暗示 Google 中某处存在一些“交叉线类型”错误。

_ 5 ) 流氓账户收到其他账户警告。这与 _4) 相关,但特别是我的一个帐户不仅受到了“交叉线 links” 的影响,而且还经常收到应该发送给其他帐户的警告。即使我没有在任何地方使用该帐户,也会发生这种情况。这再次表明,由于 Google 跟踪我个人正在做的事情

造成的一些“交叉接线/泄漏”

_.______________

问题的简短答案 was/is,可能是 Less Safe App 访问被阻止/暂时关闭,但由于各种原因,将其重新打开并不容易,因为显而易见通过设置来做到这一点的方法是没有用的,因为它通常被指示为已经打开,并且在某些情况下,仅仅查看它就会导致其他帐户设置发生变化!!

我不太愿意在我的程序中使用 gmail。我有点担心 Google 在它的“间谍”中有“交叉线/泄漏”并且它已经成长为一个无法控制的怪物,它可能会突破其服务器并出现在我面前并试图杀死我...... …当我离开印度的家时,我实际上注册了 _5) 中讨论的特定帐户! ………… “……你出车祸了……我他妈的……” -- https://www.youtube.com/watch?v=L0Fw8TVYBKg

_.__________________-

我想我们都曾经历过这样或那样的经历:广告似乎突然弹出,显然已经获得了关于我们的一些“内部信息”,这些信息可能来自某些 Google“间谍” ” 对你。我随意使用“间谍”这个词——很可能我们在没有完整阅读所有小字的情况下同意某事时就同意了。

我最近的经验表明我可以按照 links 更改我的一个 Google 帐户的设置,然后实际上更改其他帐户的设置,即使我没有登录这些帐户。此外,我可以更改我其中一个帐户的设置,这会导致其他帐户发生变化。我不确定这是否应该发生。但它确实发生在我的一些电脑上。

造成这种交叉连接的常见原因可能是 Google chrome 浏览器。最后我应该说,我在 Vista 中经常使用一个非常旧的版本。如果您只使用较新的版本,可能不会出现这些问题..

艾伦