Thunderbird-Workshop - Grundlagen

Um mir/uns die Arbeit zu erleichtern arbeiten wir mit einem benutzerdefinierten Typ und einer öffentlichen Funktion. Vorteil ist dass dieser Code nicht geändert werden muss und somit global im gesamten Projekt genutzt werden kann. Zudem steht dann Intellisense zur Verfügung. Die Variablen sind selbstsprechend. Den folgenden Code in ein allgemeines Modul einfügen. Am Code bitte nichts ändern!
Option Private Module
Option Explicit

Public Type ThunderbirdEMail
   EmailFormat            As Long ' 1= HTML-Mail, 2 = Nur-Text-Mail. Standard = 2
   SendenVonKonto         As Long ' ID des Sendkontos. Standard = 1
   Empfaenger             As String
   KopieAn                As String
   BlindKopieAn           As String
   Betreff                As String
   EMailText              As String
   Anhang                 As String
   OptionalDateiPfad      As String
End Type

Public NeueThunderbirdEMail  As ThunderbirdEMail


Public Function CreateThunderbirdEmailObject(Optional ProgrammPfad As String = _
                                             "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe")
                                             
Rem Variablendeklaration
Dim strMailAufbau   As String
Dim varAttachments  As Variant
Dim lngAttachCount  As Long


With NeueThunderbirdEMail

Rem Anzuhängende Dateien auflisten
varAttachments = Split(.Anhang, ";")

Rem Email aufbauen
strMailAufbau = ProgrammPfad & " -compose format=" & .EmailFormat & ",preselectid=id" & .SendenVonKonto & _
                ",to='" & .Empfaenger & "',subject='" & .Betreff & "',body='" & .EMailText
                       
     Rem Prüfen auf "Kopie senden an"
     If .KopieAn <> "" Then
        strMailAufbau = strMailAufbau & "',cc='" & .KopieAn
     End If
     
     Rem Prüfen auf "Blindkopie an"
     If .BlindKopieAn <> "" Then
        strMailAufbau = strMailAufbau & "',bcc='" & .BlindKopieAn
     End If

     Rem Prüfen auf "Anhang setzen"
     If UBound(varAttachments) >= 0 Then
        strMailAufbau = strMailAufbau & "',attachment='file:///" & .OptionalDateiPfad & varAttachments(0)
        For lngAttachCount = 1 To UBound(varAttachments)
            strMailAufbau = strMailAufbau & "," & .OptionalDateiPfad & varAttachments(lngAttachCount)
        Next lngAttachCount
      End If
        strMailAufbau = strMailAufbau & "'"
        
    Rem Email erstellen
    Shell strMailAufbau, vbMaximizedFocus

End With

End Function


Zur Erklärung der Parameter im benutzerdefinierten Typ ThunderbirdEMail:

EmailFormat:
Das Emailformat (1= HTML-Mail, 2 = Nur-Text-Mail. Standard = 2). Der Parameter ist optional.

SendenVonKonto:
ID des Sendkontos. Standard = 1. Parameter ist optional.

Empfaenger:
Der/die Empfänger. Mehrere Empfänger sind durch Komma zu trennen.

KopieAn:
Kopie(en) an. Optional. Mehrere Empfänger sind durch Komma zu trennen.

BlindKopieAn:
Blindkopie(en) an. Optional. Mehrere Empfänger sind durch Komma zu trennen.

Betreff:
Der Betreff.

EMailText:
Der Email-Text.

Anhang:
Der/die Anhang/Anhänge. Mehrere Anhänge sind durch Semikolon zu trennen. Anhänge mit Pfadangaben (siehe auch "OptionalDateiPfad")

OptionalDateiPfad:
Optional. Damit man bei mehreren anzuhängenden Dateien nicht für jede Datei den Pfad im Parameter "Anhang" angeben muss setzt man den Pfad nur in diesen Parameter, im Parameter "Anhang" dann nur die Dateinamen. Voraussetzung ist dass sich alle anzuhängenden Dateien im selben Pfad befinden.


Wichtig: Die Funktion CreateThunderbirdEmailObject ist fertig konfiguriert und sollte nicht geändert werden.


Ein einfaches Beispiel für das Erstellen einer Email mit zwei Anhängen.
Public Sub NeueThunderbirdEmailErstellenB3()

Rem Inhalt der Email zusammenstellen
With NeueThunderbirdEMail
     .EmailFormat = 1
     .SendenVonKonto = 2
     .Empfaenger = "empfaenger@example.com"
     .Betreff = "Test"
     .EMailText = "Hallo!<br><br>Nur ein Test.<br><br>Gruß,<br>Max"
     .Anhang = "Test.pdf;Test.xlsb"
     .OptionalDateiPfad = Environ("USERPROFILE") & "\Documents\"
End With

Call CreateThunderbirdEmailObject

End Sub


Erklärung zur Beispielprozedur:
Im Withblock NeueThunderbirdEMail werden die Variablen mit Inhalt gefüllt.
Mit Call CreateThunderbirdEmailObject wird die Funtion zum Erstellen der Email aufgerufen. Optional kann ein alternativer Pfad übergeben werden, wichtig wenn Sie z.B. auf einem 32-bit-System arbeiten auf dem der Standardpfad nicht gültig ist (Beispiel: Call CreateThunderbirdEmailObject("C:\Programme\Mozilla Thunderbird\Thunderbird.exe") )


Wie man den hier erwähnte benutzerdefinierten Typ und die Funktion erfolgreich einsetzen kann lernen wir in den nächsten Teilen. Alle folgenden Teile des Workshops bauen auf diesen Grundlagen auf.