ZetCode

VBScript Outlook.MailItem 对象

最后修改于 2025 年 4 月 9 日

VBScript 中的 Outlook.MailItem 对象代表 Microsoft Outlook 中的一封电子邮件。它提供了用于以编程方式创建、修改和发送电子邮件的属性和方法。此对象是 Outlook 对象模型的一部分,需要安装 Outlook。

MailItem 允许通过脚本自动执行与电子邮件相关的任务。您可以设置收件人、主题、正文和附件。本教程通过实际示例介绍 MailItem,以演示其功能。理解此对象能够实现强大的电子邮件自动化解决方案。

MailItem 对象概述

MailItem 对象通过 Outlook 应用程序对象创建。它包含 ToSubjectBody 等属性。方法包括 SendDisplay。它支持 HTML 和纯文本电子邮件格式。

关键属性控制电子邮件的外观和传递。方法处理发送和显示消息。该对象与 Outlook 的安全功能集成。理解这些成员对于电子邮件自动化至关重要。本教程将探讨常见的用法场景。

创建一封基本电子邮件

此示例演示了如何创建一封简单的电子邮件。它展示了如何设置收件人、主题和正文等基本属性。在发送之前,电子邮件会显示供用户预览。

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

mail.To = "recipient@example.com"
mail.Subject = "Test Email from VBScript"
mail.Body = "This is a test email created using VBScript."

mail.Display ' Show the email before sending
' mail.Send ' Uncomment to send immediately

Set mail = Nothing
Set outlookApp = Nothing

脚本创建一个 Outlook 应用程序实例和一个新的邮件项。它设置了收件人、主题和正文文本。Display 方法在 Outlook 中显示电子邮件。删除注释即可自动发送。

发送带 HTML 格式的电子邮件

此示例演示了如何创建一封 HTML 格式的电子邮件。HTMLBody 属性允许富文本格式。HTML 电子邮件支持图片、链接和样式文本,以实现专业交流。

html_email.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)

mail.To = "manager@example.com"
mail.Subject = "Monthly Report"
mail.HTMLBody = "<h1>Monthly Sales Report</h1>" & _
                "<p>Here is the <b>summary</b>:</p>" & _
                "<ul><li>Q1: $120,000</li>" & _
                "<li>Q2: $150,000</li></ul>" & _
                "<p><a href='http://example.com'>Details</a></p>"

mail.Send
Set mail = Nothing
Set outlookApp = Nothing

脚本创建了一封 HTML 格式的电子邮件,其中包含标题、粗体文本和列表。HTMLBody 属性接受标准的 HTML 标记。这允许直接从 VBScript 创建视觉上吸引人的电子邮件。电子邮件会自动发送。

为电子邮件添加附件

此示例演示了如何为电子邮件添加文件附件。Attachments.Add 方法会包含文件到电子邮件中。可以通过反复调用该方法来添加多个附件。

email_with_attachments.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)

mail.To = "colleague@example.com"
mail.Subject = "Project Documents"
mail.Body = "Please find attached the project files."

' Add attachments
mail.Attachments.Add "C:\Projects\spec.docx"
mail.Attachments.Add "C:\Projects\timeline.xlsx"

mail.Send
Set mail = Nothing
Set outlookApp = Nothing

脚本创建一封电子邮件并添加了两个文件附件。Attachments.Add 方法将完整的文件路径作为参数。附件可以是 Outlook 支持的任何文件类型。电子邮件将自动发送并附带两个文件。

设置抄送和密送收件人

此示例演示了如何为电子邮件添加抄送和密送收件人。CCBCC 属性的用法与 To 属性类似。多个收件人可以用分号分隔。

email_with_cc_bcc.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)

mail.To = "client@example.com"
mail.CC = "manager@example.com;team@example.com"
mail.BCC = "archive@example.com"
mail.Subject = "Project Update"
mail.Body = "Here's the latest project status."

mail.Display
Set mail = Nothing
Set outlookApp = Nothing

脚本设置了主要、抄送和密送收件人。多个地址用分号分隔。密送收件人对其他收件人隐藏。电子邮件在发送前会显示供预览。此方法可确保正确管理收件人。

创建和保存草稿电子邮件

此示例演示了如何创建电子邮件并将其保存到“草稿”文件夹而不是发送。Save 方法会将消息存储起来以供以后编辑。这对于模板或未完成的消息很有用。

save_draft.vbs
Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)

mail.To = "support@example.com"
mail.Subject = "Technical Assistance Request"
mail.Body = "Dear Support Team," & vbCrLf & vbCrLf & _
            "I need help with the following issue:" & vbCrLf & _
            "1. Problem description" & vbCrLf & _
            "2. Steps to reproduce" & vbCrLf & vbCrLf & _
            "Thank you," & vbCrLf & "John Doe"

mail.Save
Set mail = Nothing
Set outlookApp = Nothing

脚本创建了一个详细的电子邮件模板并将其保存为草稿。Save 方法会将消息存储在 Outlook 的“草稿”文件夹中。vbCrLf 会添加换行符以实现正确的格式。用户稍后可以完成并发送草稿消息。

来源

Outlook MailItem 文档

在本文中,我们探讨了 VBScript 中的 Outlook.MailItem 对象,涵盖了其用法和实际应用。从基本电子邮件到 HTML 格式和附件,这些示例展示了 Outlook 的自动化能力。通过这些知识,您可以自动化电子邮件处理来增强您的工作流程。

作者

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

列出所有 VBScript 教程