Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Objekte / Office / eMail

eMail via Outlook

Historie
21.10.2001Realisierung einer Vorschau; Versenden einer HTML-eMail; Hinweis auf Outlook Express
30.09.2000Grundgerüst für "typisierte" Programmierung (inkl. Anhänge und mehrzeiliger Nachricht)
??.??.1999Erste Version

Einleitung

Wenn Microsoft Outlook installiert ist, kann sehr einfach eine eMail versandt werden.

Anmerkung: Outlook Express reicht dafür nicht!

Beispiel

Hier ein sehr einfaches Beispiel:

Dim olApp As Object
Dim oItem As Object

Set olApp = CreateObject("Outlook.Application")
Set oItem = olApp.CreateItem(0)
With oItem
  .Subject = "Betreff-Zeile"
  .To = "name@server.de"
  .Body = "Dies ist ein Test."
  .Send
End With

Empfohlenes Vorgehen

Grundgerüst

Bindet man via Projekt/Verweise die "Outlook Type Library" ein, so kann auch voll typisiert programmiert werden (inklusive voller Intellisense-Unterstützung). Hierzu ein ausführliches Beispiel:

Private Sub cmdSendMail_Click()
  Dim olApp As Outlook.Application
  Dim oItem As Outlook.MailItem
  
  'Outlook-Objekt anlegen:
  Set olApp = New Outlook.Application
  Set oItem = olApp.CreateItem(olMailItem)
  With oItem
    'Adressen:
    .To = "name@server.de;willi@wacker.de"
    .CC = "kopie@server.de"
    .BCC = "unsichtbar@server.de"
    
    'Nachricht:
    .Subject = "Test-Nachricht"
    .Body = "Eine Nachricht aus VB5 heraus:" & vbNewLine & _
            "bla bla ..." & vbNewLine & _
            "noch mehr bla bla ..."
    
    'Anhänge:
    .Attachments.Add "c:\autoexec.bat"
    .Attachments.Add "c:\config.sys"
    
    'Abschicken:
    .ReadReceiptRequested = False 'Keine Lesebestätigung
    .Send
  End With
End Sub
Vorschau/Preview

Soll die generierte eMail vor dem Versenden noch angezeigt werden, so ist statt .Send einfach .Display zu verwenden.

HTML-Formatierung

Outlook beherrscht auch das Versenden von HTML-formatierten Nachrichten. Im Allgemeinen rate ich jedoch davon ab, solche eMails zu versenden, da die meisten Empfänger (meine Person mit eingeschlossen) keine HTML-eMails empfangen wollen bzw. sogar - je nach Mail-Programm - HTML-eMails nicht vernünftig lesen können.

Soll - trotz meiner Warnung Smile! - eine HTML-eMail generiert werden, so muss .HTMLBody statt .Body verwendet werden. Hier ein Beispiel:

.HTMLBody = "<h4>Beispiel</h4>" & _
            "<p>Dies ist <b>ein</b> Text.</p>"

© Jost Schwider, 30.04.2000-21.10.2001 - http://vb-tec.de/olmail.htm