CDO макрос Gmail. Некоторые аккаунты работают, некоторые нет. сообщение не может быть отправлено на SMTP-сервер. Транспортная ошибка 0x80040217. ответ сервера недоступен - PullRequest
0 голосов
/ 08 октября 2019

Huhlo,

У меня есть типичный «CDO gmail Email send» макрос. Он работал надежно в течение нескольких лет. Я использую запасную учетную запись Gmail в качестве адреса, с которого она отправляет сообщения. Недавно я хотел поделиться макросом с некоторыми людьми. Поэтому я буду использовать другой адрес Gmail в качестве отправителя. У меня есть несколько других запасных учетных записей gmail, а также некоторые люди, с которыми я хочу поделиться макросом, зарегистрировали учетную запись и дали мне имя пользователя и пароль для добавления в макрос в качестве отправителя.

ВсегоУ меня только 10 учетных записей, 7 моих и три зарегистрированных другими. Все нормально работает при обычном ручном использовании аккаунта. 3 работы с макросом. 7 не

Насколько я могу судить. у всех одинаковые настройки. Это включает небезопасную настройку Вкл. Для «Менее безопасный доступ к приложениям» .

Счета были зарегистрированы в разное время в течение последних двух лет.

Одна из неработающих учетных записей была недавно зарегистрирована кем-то, у кого не было предыдущих учетных записей. Одна из учетных записей, которая работает, использовалась почти ежедневно в течение 2 лет как вручную, так и вместе с макросом, и отправила множество писем в разные места. Два аккаунта были зарегистрированы одновременно двумя людьми в моей семье. Они использовались в обычном / ручном режиме примерно в одинаковой степени в течение двух лет, но не ранее с моим макросом. Теперь я обнаружил, что одна учетная запись работает в макросе, а другая - нет.

Эти факты говорят мне о том, что нерабочие учетные записи не были заблокированы из-за подозреваемого спама. Кажется случайным, какие аккаунты работают, а какие нет.

Кто-нибудь еще имел эту проблему? Любые предложения по решению, кроме регистрации учетных записей и выбора тех, которые работают. Или есть некоторые настройки, которые я мог пропустить.

Ниже приведена упрощенная версия макроса, который я использую. (В настоящее время я в основном могу использовать 465 или 25 в качестве smtpserverport. Результаты почти всегда совпадают с любым из них. Лишь очень редко один будет работать, а другой нет. Это, похоже, зависит от места, из которого была сделана попытка),

Результаты, которые я получаю, довольно последовательны, включая использование макроса из разных мест и с разных IP-адресов. Иногда я получаю предупреждения о безопасности для всех учетных записей, когда использую учетные записи из новых мест. Но я всегда подтверждаю, что «это был я» . После выполнения этого действия я больше никогда не получаю предупреждения безопасности при использовании учетной записи в этом месте. Сразу после такого предупреждения аккаунт временно блокируется. Но блок удаляется после подтверждения «это был я»

3 адресов почти всегда работают с макросом. В редких случаях, когда они не работают, вторая попытка обычно бывает успешной. (Эти рабочие адреса были зарегистрированы мной где-то в последние два года).

7 адресов никогда не работают с макросом. Сообщение об ошибке в точке .Send всегда одинаково:

-2147220975: Die Nachricht konnte nicht and den SMTP-Server gesendet werden. Der Transportfehlercode lautet 0x80040217. Die Serverantwort lautet недоступен

Примерный перевод на английский язык: -2147220975: Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Ответ сервера недоступен

(Чтобы запустить приведенный ниже макрос, необходимо отредактировать, указав реальный адрес gmailAddress@gmail.com, реальный пароль gmailPassword и реальные места для отправки электронного письма на адрес. В и .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

В настоящее время я экспериментирую с настройкой некоторых вещей в макросе. Я сообщу, если у меня есть что-то новое, чтобы добавить.

Спасибо заранее Alan

РЕДАКТИРОВАТЬ: Вопрос также размещен здесь: https://support.google.com/mail/thread/17437986?hl=en&authuser=5

...