Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 5/2006.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Lernen Sie eine kostenlose VB-DLL kennen, die alle notwendigen Funktionen zum Versenden von E-Mails enthält.

Techniken

SMTP, VBA

Voraussetzungen

Access 97 und höher

Beispieldatenbank

vbSendMail.zip

Mail versenden mit SMTP und VBA

André Minhorst, Duisburg

Zum Versenden von E-Mails aus einer Access-Datenbank brauchen Sie kein Outlook: Das können Sie mit einer kleinen .dll-Datei gemütlich per VBA erledigen. Wozu Sie eine solche Funktion einsetzen können, haben wir Ihnen etwa mit dem Serienmail-Tool in Ausgabe 4/2006 gezeigt. Eine passende und noch dazu freie Funktionssammlung stellen wir Ihnen im vorliegenden Artikel vor.

vbSendmail.dll

Die hier vorgestellte Komponente finden Sie unter der Adresse http://www.freevbcode.com/
ShowCode.Asp?ID=109.

Das Paket enthält neben der Datei vbSendMail.dll auch noch den Quellcode in Form eines VB-Projekts - eigenen Anpassungen steht also nichts im Wege.

Neben der genannten DLL benötigen Sie noch die Datei mswinsck.ocx - sollte diese nicht auf Ihrem System installiert sein, verwenden Sie das in den Beispieldateien enthaltene Setup. Es installiert sowohl die vbSendMail.dll als auch mswinsck.ocx in das Verzeichnis c:\windows\
system32.

Registrieren der Komponente

Bevor Sie die Mail-DLL in Betrieb nehmen, müssen Sie diese registrieren.

Das erledigen Sie am schnellsten im Ausführen-Dialog (Start/Ausführen) mit folgender Anweisung:

Regsvr32 <Pfad>\vbSendMail.dll

Alternativ verwenden Sie eine Batch-Datei mit dem folgenden Inhalt, die sich im gleichen Verzeichnis wie die vbSendMail.dll befinden muss:

Regsvr32 vbSendMail.dll

Um die Bibliothek in Access und damit innerhalb von VBA verfügbar zu machen, legen Sie einen Verweis auf die Bibliothek an (s. Abb. 1).

Mail versenden

Zum Versenden einer einfachen Mail sind nur wenige Zeilen Code nötig. Um die Ereignisse der Komponente abzufangen (dazu später mehr), müssen Sie diese in einem Klassenmodul deklarieren, wobei es sich auch um ein Formularmodul handeln kann.

Abb. 1: Setzen eines Verweises auf die Mail-Komponente

Abb. 2: Eine einfache, per VBA versendete E-Mail

Quellcode 1: Versenden einer einfachen Text-E-Mail

Public Sub MailSenden()

    Set objSendMail = New vbSendMail.clsSendMail

    With objSendMail

        .SMTPHost = "<Smtp-Server>"

        .from = "<Absender-E-Mail>"

        .Recipient = "<Empfänger-E-Mail>"

        .Subject = "Beispielmail"

        .Message = "Dies ist eine Testmail."

        .Send

    End With

End Sub

Für die ersten Beispiele reicht jedoch ein Standardmodul, das Sie von Access aus mit der Schaltfläche Neu auf der Registerseite Module des Datenbankfensters anlegen.

Hier deklarieren Sie nun eine Objektvariable namens objSendMail (in einer Zeile):

Private objSendMail As vbSendMail.clsSendMail

Die Beispielprozedur aus Quellcode 1 zeigt eine sehr einfache Möglichkeit zum Versenden einer E-Mail per VBA.

Wenn Sie die Platzhalter mit richtigen Daten füllen und der angegebene SMTP-Server keine Authentifizierung verlangt, können Sie mit diesen wenigen Zeilen Code bereits eine E-Mail versenden.

Dies sind aber auch nur die notwendigsten Daten, die zum Versenden einer E-Mail erforderlich sind (s. Abb. 2).

Die folgenden Eigenschaften der Klasse clsSendMail gestalten die E-Mail professioneller:

  • FromDisplayName: Fügt einen Absendernamen hinzu.
  • RecipientName: Fügt den Empfängernamen hinzu.
  • ReplyToAddress: Gibt eine alternative Adresse für Antwort-Mails an.
  • AsHTML: Stellen Sie diese Eigenschaft auf True, wenn Sie den Inhalt der E-Mail mit HTML-Auszeichnungen formatieren möchten.
  • Priority: Mit dieser Eigenschaft versehen Sie eine E-Mail mit einer Priorität (Dringlichkeit) wie HIGH_PRIORITY oder LOW_PRIORITY.
  • Receipt: Legt fest, ob der Empfänger zum Absenden einer Empfangsbestätigung aufgefordert wird.
  • Weitere Empfänger

    Eine E-Mail kann mehr als einen Empfänger haben. Wenn mehrere gleichberechtigte Empfänger die Mail erhalten sollen, geben Sie diese als Zeichenkette für die Eigenschaften Recipient beziehungsweise RecipientName an, wobei Sie die einzelnen Empfänger durch Semikolons voneinander trennen.

    Sollen weitere Empfänger nur eine Kopie ("CC") erhalten, fügen Sie diese Empfänger mit der Eigenschaft CCRecipient beziehungsweise CCDisplayName hinzu - auch hier geben Sie mehrere Empfänger durch Semikolon getrennt an.

    Wenn Sie eine Kopie an jemanden versenden möchten, ohne dass die anderen Empfänger dies erkennen können, verwenden Sie BCCRecipient.

    Falls Sie kein Semikolon, sondern ein anderes Zeichen zum Trennen von Empfängerlisten verwenden möchten, geben Sie dieses mit der Eigenschaft Delimiter an.

    Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

    Sind Sie Abonnent?Jetzt einloggen ...
     

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.