Как проверить, успешно ли .Attachment.Add "filename" перед отправкой - PullRequest
2 голосов
/ 03 февраля 2012

У меня есть код, который создает почтовый объект (Outlook), прикрепляет файл и отправляет его.

Dim mobjOutlook, mobjActiveExp, mobjNewMail As Object

'Create Outlook objects
Set mobjOutlook = CreateObject("Outlook.Application")
Set mobjActiveExp = mobjOutlook.ActiveExplorer
Set mobjNewMail = mobjOutlook.CreateItem(olMailItem)

'Setup and send email
With mobjNewMail
    .To = "someone@test.com"
    .Subject = "theSubject"
    .Body = "some text"
    .Attachments.Add "C:/The/File/Path.doc"
    '*I need to check here if the above line worked*
    .Send
End With

Как проверить, работает ли вложение перед отправкой? Это возможно? По какой-то причине, даже если это не так, он все равно отправляет электронное письмо без вложения.

Я думал о том, чтобы как-то использовать опцию '.Save'.

Любые мысли или предложения очень ценятся, спасибо.

1 Ответ

4 голосов
/ 03 февраля 2012

Вы можете просто проверить количество вложений в письме, которые были> 0

Также

Dim mobjOutlook, mobjActiveExp, mobjNewMail As Object
затемнить первые две переменные как варианты, поэтому я изложил это ниже

Sub Test()
Dim mobjOutlook As Object
Dim mobjActiveExp As Object
Dim mobjNewMail As Object

'Create Outlook objects
Set mobjOutlook = CreateObject("Outlook.Application")
Set mobjActiveExp = mobjOutlook.ActiveExplorer
Set mobjNewMail = mobjOutlook.CreateItem(olMailItem)

'Setup and send email
With mobjNewMail
    .To = "someone@test.com"
    .Subject = "theSubject"
    .Body = "some text"
    .attachments.Add "C:\temp\step1.png"
    If .attachments.Count > 0 Then
        .Send
    Else
        MsgBox "No attachment", vbCritical
    End If
End With
End Sub
...