Сохранение электронной почты в папку черновиков в Outlook

У меня уже есть коды для отправки электронных писем, но я не хочу, чтобы они отправлялись, я хочу, чтобы они сохранялись только в папке черновиков в Outlook.

Я попытался добавить функцию .Close, но она не работает. Есть идеи?

    Dim iCfg As CDO.Configuration
    Dim iMsg As CDO.message
    Dim EmailAddr As String
    Dim wsEmail As Worksheet
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Forecast")
    Set wsEmail = ThisWorkbook.Worksheets("Recepient")

    Set iCfg = New CDO.Configuration
    With iCfg
        .Fields(cdoSMTPServer) = "XXX"
        .Fields(cdoSMTPServerPort) = 25
        .Fields(cdoSendUsingMethod) = cdoSendUsingPort
        .Fields(cdoSMTPConnectionTimeout) = 200
        .Fields.Update
    End With

    Set iMsg = New CDO.message
    With iMsg
        Set .Configuration = iCfg
        .To = Worksheets("Recepient").Cells(5, 2).Value
        .cc = Worksheets("Recepient").Cells(5, 3).Value
        .From = "Automated Notification <[email protected]>"
        .Subject = "OPEN REQUEST " & Format(Now, "dd-mmm-yyyy")
        .HTMLBody = strBodyStandard
        .Close (olsave)
    End With

    Set iMsg = Nothing
    Set iCfg = Nothing
End Sub

person Harvint Raj    schedule 24.07.2019    source источник
comment
Я не думаю, что вы можете сделать это в CDO, я просматривал и не смог найти никаких результатов, указывающих на это. Возможно, вместо этого вы можете изменить свой подход к Outlook.   -  person Mikku    schedule 24.07.2019
comment
@Mikku я тоже просматривал. Я рассмотрю возможность изменения подхода к мировоззрению   -  person Harvint Raj    schedule 24.07.2019


Ответы (2)


Использование:

.Close olSave

введите здесь описание изображения

Вместо:

.Close

olSave сохранит это письмо в папке "Черновики"


Ваш код:

    With iMsg
        Set .Configuration = iCfg
        .To = Worksheets("Recepient").Cells(5, 2).Value
        .cc = Worksheets("Recepient").Cells(5, 3).Value
        .From = "Automated Notification <[email protected]>"
        .Subject = "OPEN  REQUEST " & Format(Now, "dd-mmm-yyyy")
        .HTMLBody = strBodyStandard
        .Close olSave
        '.Send
    End With
person Mikku    schedule 24.07.2019
comment
я получаю сообщение об ошибке компиляции: метод или элемент данных не найден в .Close - person Harvint Raj; 24.07.2019
comment
Я использую это в Excel - person Harvint Raj; 24.07.2019
comment
Это работает в моей системе. Вы должны вставить свой полный код, должна быть какая-то другая проблема. - person Mikku; 24.07.2019
comment
@HarvintRaj ... Извини, приятель, я знаю об отправке писем через Outlook. Это будет работать, если вы отправляете почту через Outlook. Не знаю про CDO. Кто-то другой ответит :) - person Mikku; 24.07.2019
comment
Вероятно, это не актуальная проблема, но .Close (olSave) должно быть .Close olSave. В этом случае (если вы используете prenthesis для метода вместо функции), скобки преобразуют параметр из ByRef в ByVal См. объяснение здесь. • Скобки следует использовать только в функциях или методах (если использовался оператор Call) или если вы хотите преобразовать их в ByVal. - person Pᴇʜ; 24.07.2019
comment
@Pᴇʜ Кажется, это не проблема. я пробовал менять. - person Harvint Raj; 24.07.2019

CDO не предоставляет никаких Save методов. Кроме того, это очень старая технология, которая в настоящее время уже не используется. Вместо этого я бы предложил использовать объектную модель Outlook, которая предоставляет Сохранить метод. Вам могут быть полезны следующие статьи:

person Eugene Astafiev    schedule 25.07.2019