Использование службы автоматизации для отправки сообщения Microsoft Outlook с помощью Access 2000

Эта статья относится к базе данных Microsoft Access (.mdb) и к проекту Microsoft Access (ADP).

Сводка

В этой статье показано, как использовать службу автоматизации для создания и отправки сообщения Microsoft Outlook в Microsoft Access 2000.

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Специалисты технической поддержки Майкрософт могут пояснить работу той или иной процедуры, но модификация примеров и их адаптация к задачам разработчика не предусмотрена.

Примечание.

Приведенный ниже код может работать неправильно, если вы установили обновление для системы безопасности электронной почты Outlook.

Метод можно использовать SendObject для программной отправки сообщения MAPI в Microsoft Access. SendObject Однако метод не предоставляет доступ к полным функциям почты, таким как возможность вложить внешний файл или задать важность сообщения. В следующем примере используется служба автоматизации для создания и отправки сообщения электронной почты, с помощью которых можно воспользоваться преимуществами многих функций Microsoft Outlook, недоступных в методе SendObject .

Существует шесть main шагов для отправки почтового сообщения Microsoft Outlook с помощью службы автоматизации следующим образом:

  1. Инициализация сеанса Outlook.
  2. Создайте новое сообщение.
  3. Добавьте получателей (Кому, КОПИЯ и СК) и разрешите их имена.
  4. Задайте допустимые свойства, такие как Subject, Body и Importance.
  5. Добавление вложений (если таковые есть).
  6. Отображение или отправка сообщения.

Отправка почтового сообщения Microsoft Outlook программным способом

  1. Создайте пример текстового файла с именем Customers.txt в папке C:\My Documents.

  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. Чтобы протестировать эту процедуру, введите следующую строку в окне Интерпретация и нажмите клавишу ВВОД:

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

    Чтобы отправить сообщение без указания вложения, опустите аргумент при вызове процедуры следующим образом:

    SendMessage