ZetCode

VBScript Outlook.Application 对象

最后修改于 2025 年 4 月 9 日

VBScript 中的 Outlook.Application 对象提供了对 Microsoft Outlook 功能的访问。它允许自动化电子邮件、日历、联系人和任务。该对象是 Outlook 对象模型的一部分,需要安装 Outlook。

Outlook.Application 使脚本能够与 Outlook 功能进行交互。它可以以编程方式创建、发送和管理电子邮件。本教程通过实际示例涵盖该对象,以演示其用法。

Outlook.Application 对象概述

Outlook.Application 对象是 Outlook 对象层次结构的根。它提供了对所有其他 Outlook 对象(如 MailItemAppointmentItem)的访问。必须使用 VBScript 中的 CreateObject 函数来创建该对象。

关键属性包括用于访问数据存储的 NameSpace 和用于打开窗口的 Explorers。像 CreateItem 这样的方法用于生成新的 Outlook 项目。理解该对象可以实现强大的 Outlook 自动化。

发送基本电子邮件

此示例演示如何使用 Outlook.Application 创建和发送简单的电子邮件。它展示了发送消息所需的最小代码。脚本创建一个新的邮件项目,设置基本属性,然后发送。

basic_email.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0) ' 0 = olMailItem

mailItem.Subject = "Test Email from VBScript"
mailItem.To = "recipient@example.com"
mailItem.Body = "This is a test email sent via VBScript."
mailItem.Send

Set mailItem = Nothing
Set outlookApp = Nothing

该脚本创建了一个 Outlook.Application 实例和一个新的邮件项目。它在发送之前设置了主题、收件人和正文。CreateItem(0) 方法创建一个电子邮件(olMailItem = 0)。完成后始终使用 Set Nothing 清理对象。

创建日历约会

此示例展示如何使用 Outlook.Application 创建日历约会。它演示了设置开始/结束时间、主题和地点。约会将被保存到默认日历文件夹。

calendar_appointment.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set appointment = outlookApp.CreateItem(1) ' 1 = olAppointmentItem

appointment.Subject = "Team Meeting"
appointment.Location = "Conference Room A"
appointment.Start = "2025-04-15 14:00"
appointment.End = "2025-04-15 15:00"
appointment.Body = "Quarterly team planning session"
appointment.Save

Set appointment = Nothing
Set outlookApp = Nothing

该脚本创建一个约会项目(olAppointmentItem = 1)并设置其属性。StartEnd 属性使用特定的日期时间格式。与电子邮件不同,约会使用 Save 保存,而不是立即发送。

读取收件箱邮件

此示例演示如何访问和读取收件箱中的邮件。它展示了如何导航 Outlook 文件夹层次结构并读取邮件属性。脚本列出了最近邮件的主题和发件人。

read_inbox.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set namespace = outlookApp.GetNamespace("MAPI")
Set inbox = namespace.GetDefaultFolder(6) ' 6 = olFolderInbox

WScript.Echo "Inbox contains " & inbox.Items.Count & " items"

For Each item In inbox.Items
    If item.Class = 43 Then ' 43 = olMail
        WScript.Echo "Subject: " & item.Subject
        WScript.Echo "From: " & item.SenderName
        WScript.Echo "------"
    End If
Next

Set inbox = Nothing
Set namespace = Nothing
Set outlookApp = Nothing

该脚本访问 MAPI 命名空间和默认的收件箱文件夹(olFolderInbox = 6)。它遍历项目,检查邮件(olMail = 43)。对于每封邮件,它会显示主题和发件人姓名。此方法可以扩展以处理邮件。

发送带附件的电子邮件

此示例演示如何发送带文件附件的电子邮件。它演示了 Attachments.Add 方法和其他电子邮件属性。脚本创建了一个更完整的电子邮件消息。

email_with_attachment.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set mailItem = outlookApp.CreateItem(0)

mailItem.Subject = "Report Attachment"
mailItem.To = "manager@example.com"
mailItem.CC = "team@example.com"
mailItem.Body = "Please find attached the quarterly report."
mailItem.Attachments.Add "C:\Reports\Q2_2025.xlsx"
mailItem.Importance = 2 ' 2 = olImportanceHigh
mailItem.Send

Set mailItem = Nothing
Set outlookApp = Nothing

该脚本创建一个电子邮件,并从指定的文件路径添加附件。它设置了抄送收件人和重要性级别(olImportanceHigh = 2)。附件可以是文件或 Outlook 项目。可以通过单独调用 Add 来添加多个附件。

创建联系人项目

此示例演示如何在默认的“联系人”文件夹中创建新联系人。它展示了如何设置各种联系人属性,如姓名、电子邮件和电话号码。联系人将被保存到“联系人”文件夹。

create_contact.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set contact = outlookApp.CreateItem(2) ' 2 = olContactItem

contact.FullName = "John Smith"
contact.CompanyName = "Acme Corporation"
contact.Email1Address = "john.smith@acme.com"
contact.BusinessTelephoneNumber = "+1 (555) 123-4567"
contact.JobTitle = "Sales Manager"
contact.Save

Set contact = Nothing
Set outlookApp = Nothing

该脚本创建一个联系人项目(olContactItem = 2)并设置标准的联系人属性。Save 方法将联系人存储在默认的“联系人”文件夹中。可以设置其他属性以获取更详细的联系人信息。

来源

Outlook 对象模型参考

在本文中,我们探讨了 VBScript 中的 Outlook.Application 对象,涵盖了其用法和实际应用。从发送电子邮件到管理日历和联系人,这些示例演示了强大的 Outlook 自动化。通过这些知识,您可以为脚本添加强大的 Outlook 集成。

作者

我叫 Jan Bodnar,是一名充满热情的程序员,拥有多年的编程经验。我自 2007 年以来一直在撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有八年以上的经验。

列出所有 VBScript 教程