VBScript打开Outlook草稿,添加到正文并发送?

时间:2017-08-08 12:53:16

标签: vbscript outlook

我目前在Outlook草稿文件夹中有一个草稿,标题为"测试对象"。草案还有一个机构和一个接收者。我想创建一个VBScript文件,找到该草稿,向其主体添加一些新文本,然后将其发送给收件人。

我找到了此页面并将其用作模板http://www.techrepublic.com/forums/discussions/send-all-mails-from-my-drafts-folder-at-one-go-in-outlook-2003/

的一种模式

这是我到目前为止所得到的

Public Sub SendDrafts()
Dim lDraftItem
Dim myOutlook
Dim myNameSpace
Dim myFolders
Dim myDraftsFolder


'Setup Outlook

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

'Set up Drafts folder
Set myDraftsFolder = myFolders("Personal Folders").Folders("Drafts")

'iterate through drafts
For lDraftItem = myDraftsFolder.Items.Count To 1 Step -1

     'find draft that matches designated subject, in this case 'Test Subject'
      If StrComp(myDraftsFolder.Items.Item(lDraftItem).Subject, "Test Subject") Then

          'Add new text to draft
           myDraftsFolder.Items.Item(lDraftItem).htmlBody = myDraftsFolder.Items.Item(lDraftItem).htmlBody & "</b><br><br><br> New Text here."

          'Send Item
          myDraftsFolder.Items.Item(lDraftItem).Send

      End If

Next

End sub

无论出于何种原因,当我运行脚本时,我什么也得不到。草稿保留在我的草稿文件夹中,但我也没有收到任何错误消息。我对VBScript很新,所以任何帮助都会受到赞赏。感谢。

1 个答案:

答案 0 :(得分:2)

当找到匹配时,strcomp将返回0,这意味着为false,因此它不会进入If条件,因为返回false。您需要修改If条件,如下所示。

If StrComp(myDraftsFolder.Items.Item(lDraftItem).Subject, "Test Subject")=0 Then
    myDraftsFolder.Items.Item(lDraftItem).htmlBody = myDraftsFolder.Items.Item(lDraftItem).htmlBody & "</b><br><br><br> New Text here."
    myDraftsFolder.Items.Item(lDraftItem).Send
    Exit For
End If