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

0

I have a typical “CDO gmail Email send” macro. It has worked reliably for a couple of years now.

I use a spare gmail account as the address it uses to send from. I want to share the macro with some people. So I will use a different gmail address as the sender.

I have some other spare gmail accounts and also some of the people have registered an account and given me the Username and Password to add to the macro as the sending address.

I have 10 accounts, seven of mine and three registered by others. All work in normal manual use. Three work with the macro, seven don’t.

As far as I can tell. all have identical settings. This includes the unsafe setting of On for “Less secure app access”.

The accounts have been registered at different times over the last two years.

One of the accounts that does not work was registered recently by someone having no previous accounts. One of the accounts that does work has been used almost daily for two years both manually and with the macro.

Two accounts were registered at the same time by two people in my family. They have been used normally/ manually to approximately the same extent for two years, but not previously with my macro. One account works in the macro, the other doesn’t.

These facts suggest to me that the non working accounts have not been blocked for suspected spamming. It seems random which accounts work and which don’t.

Below is a simplified version of the macro. (I can mostly use 465 or 25 as the smtpserverport. The results are almost always identical with either. Only very rarely, one will work whilst the other doesn’t. This seems to depend on the location from which the attempt is made).

The results I get are fairly consistent, including using the macro from different locations and different IP addresses.

I occasionally get security warnings for all accounts when I use the accounts from new locations but I always confirm that “it was me”. After taking this action, I never get security warnings again when using the account at that location. Immediately after such a warning, the account is temporarily blocked but the block is removed after I confirm “it was me”.

Three of the addresses almost always work with the macro. On the rare occasions that they don’t work, a second attempt is usually successful. (Those working addresses have been registered by me sometime in the last two years.)

Seven of the addresses never work with the macro. The error message at the .Send point is always the same:

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

An approximate English translation:

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

(To run the macro below, you must edit to give a real gmailAddress@gmail.com , a real gmailPassword , and real places to send the Email to at the .To and .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

Any suggestions other than registering accounts and picking out the ones that work?

Is there some setting I may have missed?

Question also posted here: https://support.google.com/mail/thread/17437986?hl=en&authuser=5

vba
cdo.message
asked on Stack Overflow Oct 8, 2019 by Alan Elston • edited Feb 26, 2020 by Community

1 Answer

1

I have the problem solved so I am sharing the solution.

I have now improved the situation from 3 out of 10 accounts working to 11 out of 11 accounts working.

Here are the solution details for anyone else that has a similar problem. I would recommend starting with the solution _4) , as that is the quickest. If that does not solve the problem you will need to look at the others. The others may involve some laborious work.

_1 A strange thing in an old account, which was recently not working in my program and which I had definitely checked many times for Less Secure Apps On.

This account still had in the InBox many old typical Email Warnings from when I had attempted to do things such as logging in different places. ( Often this causes a temporary block, or resetting of Less Secure Apps Off , until you confirm something like “yes, that was me” ). All had been answered by me with “yes it was me”, at least I am 98% sure about that –they all been read, so it is very unlikely that I had ignored them

Never the less , I laboriously re read the Email warnings, and followed the link which almost always confirmed that I had answered, and any given link to the setting showed that it was indeed set to On. There was one exception : the link showed that the Setting was off. Still looking at any other link or looking in that account settings showed it to be On. But I switched it on anyway, after which the account worked again in my program.

I note that all links in warnings are unique, as they contain information specific to the occurrence which sets off the warning. One explanation of the possible bug is that somehow an answer warning gets set back to unanswered, which blocks the account. The check for validation might be based for some reason on a dynamic process that has all the warnings in a chain, such that all must be answered with yes. This make sense since you can change your answer at a later date. The work around is to re answer all old warnings. In some old accounts I had trashed old Email warnings anymore, so I thought that I could not answer again answer, such that the account would remain blocked, despite showing that it isn’t. But strangely, in the trash folder all old warnings were there despite the default setting of only holding trash for 30 days… https://imgur.com/thNdDaV … very strange, in that screenshot there are entries going back to early 2018, despite the fact that it clearly states there that trash is deleted after 30 days. Other stuff that I trashed is gone. In future , to be on the safe side, I will archive rather than delete warning Emails, or at least store the link given in it for checking and re setting Less Secure Apps.

_2 Setting suddenly showing (correctly) Off, allowing it to be set to On. Another old account, which was recently not working in my program and which I had definitely checked many times for Less Secure Apps On, suddenly showed Less Secure Apps Off. I then switched it On, and the account worked in my program. This may have been caused indirectly by some of the “cross wire” effects whilst I was looking at effects in other accounts. The moral of this one is not to rely on checking the setting just once, as later it might change for no apparent reason.

_ 3) I mentioned in the original post that my personal telephone cant be used any more to verify a new account, (gmail only allow a few uses for SMS confirmation – they deliberately do not say how many). Mostly that is still the case. On one random attempt during my experiments it worked. The new account then also worked in my program. – Hence I have 11 out of 11 now working, rather than 10 out of 10.

Similar conclusion again here: Don’t rely on the situation being static, some external thing may have some effect giving you a short period to do something that is generally not possible.

_4) Links going to wrong accounts. This mostly happens when I have other accounts open, but occasionally it also happens when I only have one account open.

As example: I get a valid warning based on some activity that I do on an account: 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

Now it gets interesting: I end up at the wrong account: https://imgur.com/T050wP4

That is easy to overlook. The solution here was to ignore links given and go directly to settings on the correct account, preferably soon after you get the warning. If you do not do that, then not only will you possibly not get to set the correct account, but also you possibly get another undesirable effect: sometimes the act of following the ( “crossed” ) link seemed to set off sporadic warnings and setting changes on other accounts !!!

This is all suggesting to me that there is some “cross wire type” bugs somewhere in Google.

_ 5 ) Rogue account getting other accounts warnings. This is related to _4) , but in particular one of my accounts not only got effected by following the “cross wired links” , but also frequently gets the warnings that should go to the other accounts. This happens even when I am not using that account anywhere. Once again this suggests some “cross wiring / leakage” caused by Google tracking what I , personally , am doing

_.______________

The short answer to what the problem was/is, is possibly that Less Safe App access was being blocked/ temporarily tuned Off, but for varied reasons it was not easy to switch it back On, since the obvious way to do that via settings was no use since it was often indicated as already On, and in some cases , just looking at it caused other account settings to change!!

I am slightly put off using gmail in my program. I have some concern that Google in its “spying” has got “cross wires / leakage” and it has grown into an uncontrollable monster that will probably break out of its server and appear in front of me and try kill me …… I actually registered the particular account discussed in _5) when I was away from home in India!!! ………… “…You are experiencing a car accident … The hell I am..” -- https://www.youtube.com/watch?v=L0Fw8TVYBKg

_.__________________-

I think we have all experienced at one time or another that adverts seem to pop up which obviously have got some “inside information” about us, which amongst other sources, may come from some Google “spying” on you . I use the word “spying” loosely – most likely we have agreed to it when agreeing to something without fully reading all the small print.

My recent experience is showing that I can follow links to change settings on one of my Google accounts, and then actually change settings on other accounts, even if I am not logged into these accounts. Further, I can change setting in one of my accounts, and it will cause changes in other accounts. I am not sure if that is supposed to happen. But it certainly does happen to me on some of my computers.

The common thing that is causing this cross wiring may be Google chrome browser. I should say finally that I am using a very old version often , in Vista. Possibly these issues do not arise if you only use a newer version..

Alan

answered on Stack Overflow Jan 11, 2020 by Alan Elston • edited Jan 11, 2020 by Alan Elston

User contributions licensed under CC BY-SA 3.0