可以使用 SendObject 方法在 Microsoft Access 中以编程方式发送 MAPI 邮件消息。 但是, SendObject 方法不提供完成邮件功能,如能够附加外部文件,或设置邮件重要性的访问。 下面的示例使用自动化创建并发送邮件的使用可以利用在 Microsoft Outlook 中不可用, SendObject 方法的许多功能。
有如下通过自动化,发送 Microsoft Outlook 邮件的六个主要步骤:
初始化 Outlook 会话。
创建新邮件。
将收件人添加 (到,抄送,和密件抄送),并解决它们的名称。
设置如主题、 正文和重要性的有效属性。
(如果有),请添加附件。
显示 / 发送邮件。
以编程方式发送 Microsoft Outlook 邮件
创建名为 Customers.txt 在 C: \ My 中的一个示例文本文件的文档文件夹。
启动 Microsoft Access,并打开示例数据库 Northwind.mdb。
创建一个模块,并声明部分中键入下面一行,如果它尚不存在:
Option Explicit
在 工具 菜单中上, 单击 引用 。
在 引用 框单击以选中 Microsoft Outlook 9.0 对象库 ,然后单击 确定 。
注意 : 如果 可用的引用 框中没有 Microsoft Outlook 9.0 对象库,浏览文件,Msoutl9.olb 的硬盘。 如果找不到此文件,您必须运行 Microsoft Outlook 安装程序在继续操作和此示例之前安装它。
在新模块中键入以下过程:
Sub SendMessage(Optional AttachmentPath)
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application")
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
' Add the To recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
objOutlookRecip.Type = olTo
' Add the CC recipient(s) to the message.
Set objOutlookRecip = .Recipients.Add("Andrew Fuller")
objOutlookRecip.Type = olCC
' Set the Subject, Body, and Importance of the message.
.Subject = "This is an Automation test with Microsoft Outlook"
.Body = "Last test - I promise." & vbCrLf & vbCrLf
.Importance = olImportanceHigh 'High importance
' Add attachments to the message.
If Not IsMissing(AttachmentPath) Then
Set objOutlookAttach = .Attachments.Add(AttachmentPath)
End If
' Resolve each Recipient's name.
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve
If Not objOutlookRecip.Resolve Then
objOutlookMsg.Display
End If
Next
.Send
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub
要测试此过程,在立即的窗口中键入下面一行,,然后按 ENTER 键:
SendMessage "C:\My Documents\Customers.txt"