如何使用自动化通过 Access 2000 发送 Microsoft Outlook 邮件

本文适用于 Microsoft Access 数据库 (.mdb) 和 Microsoft Access 项目 (.adp) 。

摘要

本文介绍如何使用自动化在 Microsoft Access 2000 中创建和发送 Microsoft Outlook 邮件。

Microsoft 提供的编程示例仅用于进行说明,而不提供明示或默示担保。 这包括但不限于适销性或对特定用途的适用性的默示担保。 本文假设您熟悉正在演示的编程语言和用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供新增功能或构建步骤以满足你的特定需要。

注意

如果已安装 Outlook 电子邮件安全更新,则以下代码可能无法正常工作。

可以使用 SendObject 方法在 Microsoft Access 中以编程方式发送 MAPI 邮件。 但是, SendObject 方法不授予你对完整邮件功能的访问权限,例如附加外部文件或设置邮件重要性的功能。 下面的示例使用自动化创建和发送邮件,可用于利用 Microsoft Outlook 中方法中 SendObject 不提供的许多功能。

使用自动化发送 Microsoft Outlook 邮件有六main步骤,如下所示:

  1. 初始化 Outlook 会话。
  2. 创建新邮件。
  3. 添加收件人 (收件人、抄送和密件抄送) 并解析其姓名。
  4. 设置有效属性,例如 Subject、Body 和 Importance。
  5. 添加附件 ((如果有) )。
  6. 显示/发送消息。

以编程方式发送 Microsoft Outlook 邮件

  1. 在 C:\My Documents 文件夹中创建名为 Customers.txt 的示例文本文件。

  2. 启动 Microsoft Access,并打开示例数据库Northwind.mdb。

  3. 创建一个模块,并在“声明”部分键入以下行(如果尚不存在):

    Option Explicit

  4. 在“ 工具 ”菜单上,选择“ 引用”。

  5. 在“ 引用 ”框中,选择“ Microsoft Outlook 9.0 对象库”,然后选择“ 确定”。

    注意

    如果 Microsoft Outlook 9.0 对象库 未显示在 “可用引用 ”框中,请浏览硬盘中的文件 Msoutl9.olb。 如果找不到此文件,则必须运行 Microsoft Outlook 安装程序进行安装,然后才能继续执行此示例。

  6. 在新模块中键入以下过程:

    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
    
  7. 若要测试此过程,请在“ 即时 ”窗口中键入以下行,然后按 Enter:

    SendMessage "C:\My Documents\Customers.txt"

    若要在不指定附件的情况下发送邮件,请在调用过程时省略 参数,如下所示:

    SendMessage