Почта CDO smtp внезапно не отправляется

Итак, у меня есть этот код для отправки электронной почты из Excel VBA. Код работал отлично до сегодняшнего утра, когда ни с того ни с сего макрос сработал, но на адрес назначения ничего не пришло! Является ли это проблемой ретрансляции SMTP, и если да, то как ее исправить? Или, возможно, проблема связана с "http://schemas.microsoft.com/cdo/configuration (Я до сих пор не знаю, как это работает! Возможно ли иметь схемы локально? Или я что-то упустил! Заранее спасибо, Тим

Вот макрос - Только имена изменены для защиты невиновных :)

Sub CDO_Mail()
    Dim iMsg As Object
    Dim iConf As Object
    Dim strbody As String
    Dim Flds As Variant

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")

    iConf.Load -1    ' CDO Source Defaults
    Set Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
        .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") = "BigSecret"
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "auth.smtp.1and1.fr"

        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
        .Update
    End With
        With iMsg
        Set .Configuration = iConf
        .To = "[email protected]"
        .CC = ""
        .BCC = ""
        .From = "TheMainMan"
        .Subject = "Important message"
        .TextBody = "BODYTEXT"
        .Send

    End With
End Sub

person Tim Roper    schedule 01.09.2014    source источник


Ответы (1)


Вместо этого попробуйте использовать раннее связывание. Это имеет дополнительное преимущество, заключающееся в том, что доступно автозаполнение. Ваша конфигурация может быть настроена следующим образом:

Dim iConf As CDO.Configuration

Set iConf = New CDO.Configuration ' CreateObject("CDO.Configuration")
With iConf.Fields
    .Item(cdoSendUsingMethod) = cdoSendUsingPort
    .Item(cdoSMTPServerPort) = 465
    .Item(cdoSMTPServer) = "auth.smtp.1and1.fr"
    .Item(cdoSendUserName) = "[email protected]" 
    .Item(cdoSendPassword) = "BigSecret"
    'etc.
    .Update
End With

Чтобы использовать это, вам нужно установить явную ссылку на библиотеку CDO: Инструменты > Ссылка > установить галочку рядом с Microsoft CDO.

Ссылка на CDO в VBE

person Jean-François Corbett    schedule 01.09.2014