2017-01-04 10 views
1

У меня есть следующий код для отправки почты с макроса VBA с помощью CDO. Я получаю сообщение об ошибке в коде:SMTP VBA: при отправке почты - транспорт не удалось подключиться к серверу

Транспорт не удалось подключиться к серверу Ошибка

Я посылаю почту от службы Gmail SMTP. Похоже, что настройка настроена правильно, но почему-то это не работает.

Sub Email() 

    Dim CDO_Mail As Object 
    Dim CDO_Config As Object 
    Dim SMTP_Config As Variant 
    Dim strSubject As String 
    Dim strFrom As String 
    Dim strTo As String 
    Dim strCc As String 
    Dim strBcc As String 
    Dim strBody As String 

    strSubject = "Results from Excel Spreadsheet" 
    strFrom = "[email protected]" 
    strTo = "[email protected]" 
    strBody = "The total results are: 167" 

    Set CDO_Mail = CreateObject("CDO.Message") 

    Set CDO_Config = CreateObject("CDO.Configuration") 
    CDO_Config.Load -1 

    Set SMTP_Config = CDO_Config.Fields 

    With SMTP_Config 
     .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
     .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 
     .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
     .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" 
     .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxxx" 
     .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
     .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True 
     .Update 
    End With 

    With CDO_Mail 
     Set .Configuration = CDO_Config 
    End With 

    CDO_Mail.Subject = strSubject 
    CDO_Mail.From = strFrom 
    CDO_Mail.To = strTo 
    CDO_Mail.TextBody = strBody 
    CDO_Mail.Send 

End Sub 

ответ

0

Этот код работает совершенно нормально для меня (отправить из Gmail в Gmail) - так что вам необходимо проверить следующее:

  • попробовать его с портом 587, а также порт 465 (further reading)
  • настроить отправку учетной записи в Gmail для Access for less secure apps - есть Turn On вариант на следующей support page

Предоставление менее защищенных приложений для доступа к вашей учетной записи Google может блокировать попытки входа в систему из некоторых приложений или устройств, которые не используют современные стандарты безопасности. Поскольку эти приложения и устройства легче ворваться, их блокировка помогает защитить вашу учетную запись.

Некоторые примеры приложений, которые не поддерживают новейшие стандарты безопасности включают в себя:

Почтового приложение на вашем iPhone или IPad с прошивкой 6 или ниже

The Mail приложение на телефоне Windows, предшествующей версии 8.1

Некоторые Desktop почтовые клиенты, такие как Microsoft Outlook и Mozilla Thunderbird

...

Вариант 2. Измените свои настройки, чтобы менее безопасные приложения могли получить доступ к вашей учетной записи. Мы не рекомендуем этот вариант, потому что это может облегчить кому-то проникновение в вашу учетную запись. Если вы хотите разрешить доступ в любом случае, выполните следующие действия:

Перейдите в раздел «Менее безопасные приложения» в разделе «Моя учетная запись».

Рядом с "Доступ для менее безопасных приложений" выберите Включить. (Примечание для пользователей Служб Google: Эта настройка скрыта, если администратор заблокировал менее безопасный доступ приложение учетной записи.)

CDO довольно стара так предположить, что это пример приложения, которое не поддерживает последние стандарты безопасности.

+0

спасибо, что сработал. Я выбрал вариант 2. :) – Harshil

+0

Рад помочь - не стесняйтесь, если вы хотя ответ был полезен :) –