2012-02-03 3 views
2

У меня есть код, который создает объект Mail (Outlook), прикрепляет файл и отправляет его.Как проверить, выполнено ли .Attachment.Add «filename» перед отправкой

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 = "[email protected]" 
    .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».

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

ответ

4

Вы можете просто проверить количество вложений в электронной почте были> 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 = "[email protected]" 
    .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 
+1

Thankyou! Кроме того, спасибо за дополнительные биты :) –

+0

Просто добавили еще одно условие для вашего решения, чтобы проверить, существует ли файл до присоединения. Еще раз спасибо! –

Смежные вопросы