如何从Outlook 2003发送多个草稿

时间:2009-03-05 11:05:26

标签: vb.net outlook

Outlook不会让我同时发送多个草稿。有没有一种简单的方法可以在Outlook中一次发送多个草稿?无需单独打开每一个?

从我所阅读,看过和尝试过;这在Outlook本身内是不可能的,因此需要一个编程解决方案,可能是一些VB脚本

4 个答案:

答案 0 :(得分:1)

好吧,我找到了一些VB来做到这一点:

`Public Sub SendDrafts()

Dim lDraftItem As Long
Dim myOutlook As Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolders As Outlook.Folders
Dim myDraftsFolder As Outlook.MAPIFolder

'Send all items in the "Drafts" folder that have a "To" address filled
'in.

'Setup Outlook

Set myOutlook = Outlook.Application
Set myNameSpace = myOutlook.GetNamespace("MAPI")
Set myFolders = myNameSpace.Folders


'Set Draft Folder.  This will need modification based on where it's
'being run.

Set myDraftsFolder = myFolders("$MAILBOX").Folders("$DRAFTS")

'Loop through all Draft Items

For lDraftItem = myDraftsFolder.Items.Count To 1 Step -1

'Check for "To" address and only send if "To" is filled in.

If Len(Trim(myDraftsFolder.Items.Item(lDraftItem).To)) > 0 Then

'Send Item

myDraftsFolder.Items.Item(lDraftItem).Send

End If
Next lDraftItem

'Clean-up

Set myDraftsFolder = Nothing
Set myNameSpace = Nothing
Set myOutlook = Nothing

End Sub

只需将$ MAILBOX替换为您的邮箱名称,将$ DRAFTS替换为您的草稿文件夹名称。 这已被人工测试,似乎工作正常。

答案 1 :(得分:1)

与作者的回答没什么不同,但仍然是:

Sub SendDrafts()
  Dim ns As NameSpace
  Dim drafts As MAPIFolder
  Dim Item As MailItem

  Set ns = Application.GetNamespace("MAPI")
  Set drafts = ns.GetDefaultFolder(olFolderDrafts) ' 16
  For Each Item In drafts.Items
    'Item.Send
  Next
End Sub

请小心,因为它确实会在您的默认草稿文件夹中发送所有电子邮件。取消注释发送行后。 {$ 1}}行允许在Outlook宏编辑器内部进行自动完成。

答案 2 :(得分:0)

一个有用的版本,我刚刚在Outlook 2000中测试过:

将您要发送的电子邮件拖到发件箱中。它们不会自动发送,但使用此版本的先前发布会发送它们:

Sub SendOutbox()
  Dim ns As NameSpace
  Dim outbox As MAPIFolder
  Dim Item As MailItem

  Set ns = Application.GetNamespace("MAPI")
  Set outbox = ns.GetDefaultFolder(olFolderOutbox) ' 16
  For Each Item In outbox.Items
    Item.Send
  Next
End Sub

这样,你可以有选择性。

答案 3 :(得分:-1)

是的,您可以编写一个宏或加载项来执行此操作。