如何在发送前检查 .Attachment.Add "filename" 是不是成功
Posted
技术标签:
【中文标题】如何在发送前检查 .Attachment.Add "filename" 是不是成功【英文标题】: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”选项。
非常感谢任何想法或建议, 谢谢。
【问题讨论】:
【参考方案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
【讨论】:
刚刚在您的解决方案中添加了另一个条件,以在附加之前检查文件是否存在。再次感谢!以上是关于如何在发送前检查 .Attachment.Add "filename" 是不是成功的主要内容,如果未能解决你的问题,请参考以下文章