Inhaltsverzeichnis

24.3.3 Klasse MimeMessage

Die Klasse MimeMessage (gb.mime) wird stets zusammen mit den Klassen Mime und MimePart verwendet

Die Klasse kann erzeugt werden. Eine neue EMail vom Typ MimeMessage wird so erzeugt:

Dim hMimeMessage As MimeMessage
hMimeMessage = New MimeMessage ( [ Contents As String ] )

24.3.3.1 Eigenschaften

Die Klasse MimeMessage verfügt über diese Eigenschaften, die in der folgenden Tabelle beschrieben werden.

EigenschaftDatentypBeschreibung
SenderStringSetzt den Absender der EMail oder gibt den Absender zurück.
ToString[]Setzt den Empfänger der EMail oder gibt den Empfänger zurück.
CcString[]Setzt weitere Empfänger der EMail in Kopie oder gibt diese optionalen Empfänger zurück.
BccString[]Setzt weitere, jedoch als versteckt deklarierte Empfänger der EMail oder gibt diese optionalen Empfänger zurück.
ReplyToStringSetzt das ReplyTo-Header-Feld oder gibt das ReplyTo-Header-Feld zurück.
SubjectStringSetzt den Betreff der EMail oder gibt den Betreff zurück.
IdStringSetzt die ID der EMail oder gibt die ID der EMail zurück.
BodyMimePartGibt den Inhalt der EMail zurück. Der Inhalt ist Text zum Beispiel in der Kodierung text/plain oder text/html, in den optional multimediale Objekte in unterschiedlichen Kodierungen eingefügt werden können. Diese Eigenschaft ignoriert jedoch Anhänge.
Headers.MimeMessage.HeadersMimeMessage.Headers[fieldname] gibt ein über 'fieldname' definiertes Header-Feld einer EMail zurück. Die virtuelle Klasse 'MimeMessage.Headers' kann wie ein Schreib/Lese-Array verwendet werden.

Tabelle 24.3.3.1.1 : Eigenschaften der Klasse MimeMessage

Kommentar:

Beispiel 1 – Inhalt von Header-Feldern festlegen

Mit diesem Quelltext-Ausschnitt setzen Sie den Wert einer Kopfzeile (Header-Feld) mit dem Bezeichner 'FieldName':

Dim hMimeMessage As MimeMessage 
Dim sString As String 
hMimeMessage.Headers [ FieldName As String ] = sString 

Beispiel 2 – Inhalt von Header-Feldern auslesen

So geben Sie den Wert einer Kopfzeile (Header-Feld) mit dem Bezeichner 'FieldName' zurück:

Dim hMimeMessage As MimeMessage 
Dim sString As String 
sString = hMimeMessage.Headers [ FieldName As String ] 

24.3.3.2 Methoden

Die Klasse MimeMessage besitzt nur eine Methode. Die Funktion ToString setzt eine EMail aus ihren Teilen Header und Body zusammen:

Function ToString ( ) As String

24.3.3.3 Projekt

Mit dem folgenden Quelltext-Ausschnitt können Sie nicht nur den Inhalt ausgewählter Header-Felder sondern auch Body-Sub-Header-Felder in einem EMail-Quelltext auslesen und anzeigen. Außerdem erhalten Sie Informationen zu den EMail-Anhängen, sofern diese vorhanden sind. Den Informationen wird eine Übersicht zur Struktur der untersuchten EMail vorangestellt:

Public Sub btnShowMimeMessageDetails_Click()
  Dim hMimeMessage As New MimeMessage
  Dim hMimePart, hMimePart2 As MimePart
  Dim sMessage, sEncoding As String
  Dim k As Integer = 1
 
  hMimeMessage = New MimeMessage(txaMonitor.Text)
 
  $sBodyType = Scan(hMimeMessage.Part.Headers["Content-Type"], "*;*")[0]
 
  sMessage = ("D E T A I L S  M I M E - M E S S A G E")
  txaMonitor.Insert(sMessage & gb.NewLine)
  txaMonitor.Insert(String$(String.Len(sMessage), "-") & gb.NewLine)
  txaMonitor.Insert(gb.NewLine)
 
' Parse mimemessage ...
  txaMonitor.Insert("+ " & $sBodyType & gb.NewLine)
  ParsePart(hMimeMessage.Body, True)
  ParsePart(hMimeMessage.Part, False)
 
' Show details ...
  txaMonitor.Insert(String$(80, "-") & gb.NewLine)
  txaMonitor.Insert(gb.NewLine)
 
  txaMonitor.Insert("CONTENT-TYPE EMAIL = " & Scan(hMimeMessage.Headers["Content-Type"], "*;*")[0] & gb.NewLine)
  txaMonitor.Insert("DATE = " & hMimeMessage.Headers["Date"] & gb.NewLine)
  txaMonitor.Insert("FROM = " & hMimeMessage.Sender & gb.NewLine)
  txaMonitor.Insert("RETURN-PATH = " & hMimeMessage.Headers["Return-Path"] & gb.NewLine)
  txaMonitor.Insert("SUBJECT = " & hMimeMessage.Subject & gb.NewLine)
  txaMonitor.Insert("TO = " & hMimeMessage.To & gb.NewLine)
  If hMimeMessage.Cc Then
     txaMonitor.Insert("CC = " & hMimeMessage.Cc & gb.NewLine)
  Endif
' txaMonitor.Insert("BCC = "; hMimeMessage.Bcc  ' Blind means hidden ...
  txaMonitor.Insert("MESSAGE-ID = " & hMimeMessage.Id & gb.NewLine)
  txaMonitor.Insert("MIME-VERSION = " & hMimeMessage.Headers["MIME-Version"] & gb.NewLine)
 
  hMimePart = New MimePart
  hMimePart = hMimeMessage.Part
  hMimePart2 = New MimePart
  hMimePart2 = hMimeMessage.Part
 
  If Scan(hMimeMessage.Headers["Content-Type"], "*;*")[0] Like "*/mixed" Then ' : Attachment number >= 1
     txaMonitor.Insert(gb.NewLine)  
     sMessage = ("D E T A I L S  F O R  A T T A C H M E N T")
     txaMonitor.Insert(sMessage & gb.NewLine)
     txaMonitor.Insert(String$(String.Len(sMessage), "-") & gb.NewLine)
     txaMonitor.Insert(gb.NewLine)
  Endif
 
  For Each hMimePart2 In hMimePart
    If hMimePart2.Disposition = "attachment" Then
       txaMonitor.Insert(("Attachment ") & Str(k) & ":" & gb.NewLine)
       Inc k
       txaMonitor.Insert("Disposition = " & hMimePart2.Disposition & gb.NewLine)
       Select Case hMimePart2.ContentEncoding
         Case 0
           sEncoding = "Default"
         Case 1
           sEncoding = "7Bit"
         Case 2
           sEncoding = "8Bit"
         Case 3
           sEncoding = "Binary"
         Case 4
           sEncoding = "Base64"
         Case 5
           sEncoding = "QuotedPrintable"
         Case 6
           sEncoding = "UUEncode"
       End Select
 
       txaMonitor.Insert("ContentEncoding = " & sEncoding & gb.NewLine)
       txaMonitor.Insert("ContentType = " & hMimePart2.ContentType & gb.NewLine)
       txaMonitor.Insert("FileName = " & hMimePart2.FileName & gb.NewLine)
       txaMonitor.Insert(gb.NewLine)  
    Endif
  Next
 
  btnShowMimeMessageDetails.Enabled = False
 
End ' btnShowMimeMessageDetails_Click()

B1

Abbildung 24.3.3.3.1: Anzeige ausgewählter Details in einer EMail

Download