Come usare Automazione per inviare un messaggio di Microsoft Outlook tramite Access 2000

Questo articolo si applica a un database di Microsoft Access (.mdb) e a un progetto di Microsoft Access (con estensione adp).

Riepilogo

Questo articolo illustra come usare Automazione per creare e inviare un messaggio di Microsoft Outlook in Microsoft Access 2000.

Microsoft fornisce esempi di programmazione a scopo puramente illustrativo, senza alcuna garanzia di qualsiasi tipo, sia espressa che implicita, ivi incluse, senza limitazioni, le garanzie implicite di commerciabilità o idoneità per uno scopo particolare. In questo articolo si presuppone che l'utente conosca il linguaggio di programmazione in questione e gli strumenti utilizzati per creare ed eseguire il debug delle procedure. Gli esperti Microsoft sono autorizzati a fornire spiegazioni in merito alla funzionalità di una particolare routine, ma in nessun caso a modificare questi esempi per fornire funzionalità aggiuntive o a creare routine atte a soddisfare specifiche esigenze.

Nota

Il codice seguente potrebbe non funzionare correttamente se è stato installato l'aggiornamento della sicurezza della posta elettronica di Outlook.

È possibile utilizzare il SendObject metodo per inviare un messaggio di posta elettronica MAPI a livello di codice in Microsoft Access. Tuttavia, il SendObject metodo non consente di accedere alla funzionalità di posta completa, ad esempio la possibilità di allegare un file esterno o impostare l'importanza del messaggio. L'esempio seguente usa Automazione per creare e inviare un messaggio di posta elettronica che è possibile usare per sfruttare molte funzionalità di Microsoft Outlook non disponibili con il SendObject metodo .

Esistono sei passaggi principali per inviare un messaggio di posta elettronica di Microsoft Outlook usando Automazione, come indicato di seguito:

  1. Inizializzare la sessione di Outlook.
  2. Creare un nuovo messaggio.
  3. Aggiungere i destinatari (A, CC e CC) e risolvere i relativi nomi.
  4. Impostare proprietà valide, ad esempio Subject, Body e Importance.
  5. Aggiungere allegati (se presenti).
  6. Visualizzare/inviare il messaggio.

Invio di un messaggio di posta elettronica di Microsoft Outlook a livello di codice

  1. Creare un file di testo di esempio denominato Customers.txt nella cartella C:\Documenti.

  2. Avviare Microsoft Access e aprire il database di esempio Northwind.mdb.

  3. Creare un modulo e digitare la riga seguente nella sezione Dichiarazioni se non è già presente:

    Option Explicit

  4. Scegliere Riferimenti dal menu Strumenti.

  5. Nella casella Riferimenti selezionare la libreria di oggetti di Microsoft Outlook 9.0 e quindi selezionare OK.

    Nota

    Se la libreria di oggetti di Microsoft Outlook 9.0 non viene visualizzata nella casella Riferimenti disponibili , cercare il file msoutl9.olb nel disco rigido. Se non è possibile individuare questo file, è necessario eseguire il programma di installazione di Microsoft Outlook per installarlo prima di procedere con questo esempio.

  6. Digitare la procedura seguente nel nuovo modulo:

    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. Per testare questa procedura, digitare la riga seguente nella finestra Immediata e quindi premere INVIO:

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

    Per inviare il messaggio senza specificare un allegato, omettere l'argomento quando si chiama la routine, come indicato di seguito:

    SendMessage