2012-02-03 63 views
2

我有一些创建邮件对象(Outlook)的代码,附加一个文件并发送它。如何在发送之前检查.Attachment.Add“文件名”是否成功

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

谢谢!另外,感谢额外的位:) – 2012-02-05 22:18:59

+0

只需在解决方案中添加另一个条件,以检查文件是否存在,然后再附加。再次感谢! – 2012-02-05 23:26:32

相关问题