Condividi tramite


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 (adp).

Sommario

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 metodo SendObject per inviare un messaggio di posta elettronica MAPI a livello di codice in Microsoft Access. Tuttavia, il metodo SendObject non consente di accedere alla funzionalità completa della posta, ad esempio la possibilità di allegare un file esterno o impostare l'importanza del messaggio. Nell'esempio seguente viene utilizzata l'automazione per creare e inviare un messaggio di posta elettronica che è possibile utilizzare per sfruttare molte funzionalità di Microsoft Outlook non disponibili con il metodo SendObject.

Esistono sei passaggi principali per l'invio di un messaggio di posta elettronica di Microsoft Outlook tramite Automazione, come indicato di seguito:

  1. Inizializzare la sessione di Outlook.
  2. Crea un nuovo messaggio.
  3. Aggiungere i destinatari (A, CC e CCN) 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. Nel menu strumenti di selezionare Riferimenti.

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

    Nota

    Se la libreria oggetti di Microsoft Outlook 9.0 non viene visualizzata nella casella riferimenti disponibili, individuare il disco rigido per il file Msoutl9.olb. 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