【问题标题】:How to check if .Attachment.Add "filename" is successful before send如何在发送前检查 .Attachment.Add "filename" 是否成功
【发布时间】:2012-02-03 04:57:49
【问题描述】:

我有一些代码可以创建一个邮件对象 (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”选项。

非常感谢任何想法或建议, 谢谢。

【问题讨论】:

    标签: ms-access outlook vba


    【解决方案1】:

    您可以测试电子邮件中的附件数量 > 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
    

    【讨论】:

    • 刚刚在您的解决方案中添加了另一个条件,以在附加之前检查文件是否存在。再次感谢!
    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 2015-12-29
    • 2017-07-09
    相关资源
    最近更新 更多