Imports Limilabs.Mail
Imports Limilabs.Mail.MSG
Imports System.Text.RegularExpressions
Public Class ClassEmailHeaderExtractor
''''
'''' Extrahiert die Headerinformationen aus einem msg Objekt mithilfe der MSG.NET Klasse
''''
'''' Eine Email vom Typ Msg.Message
'''' Headerinformationen als String oder Nothing wenn ein Fehler aufgetreten ist.
'Public Shared Function getMessageHeaders(msg As Msg.Message)
' Try
' Dim headers = msg.TransportMessageHeaders.Replace(vbCrLf, " ")
' Return headers
' Catch ex As Exception
' Return Nothing
' End Try
'End Function
''''
'''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Absenderadresse.
''''
'''' Headerinformationen die von getMessageHeaders erzeugt wurden.
'''' Eine Liste von Regular Expressions
'''' Die Ergebnisgruppe, die die Adresse enthält
'''' Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte.
'Public Shared Function extractFromAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1)
' If IsNothing(messageHeaders) Then
' Return Nothing
' End If
' For Each rx In RegexList
' Dim match As Match = rx.Match(messageHeaders)
' Dim email As String = match.Groups(RegexGroup).Value
' If Not String.IsNullOrWhiteSpace(email) Then
' Return email
' End If
' Next
' Return Nothing
'End Function
'Public Shared Function extractFromHeader(messageHeaders As String, Regex As String)
' Try
' Dim result = Nothing
' Dim i As Integer = 0
' If IsNothing(messageHeaders) Then
' Return Nothing
' End If
' ' einen Regulären Ausdruck laden
' Dim strRegex As String = Regex
' Dim myRegex As New Regex(strRegex, RegexOptions.IgnorePatternWhitespace Or RegexOptions.IgnoreCase)
' Dim strTargetString As String = messageHeaders.Trim
' ' die Vorkommen im String auslesen
' For Each myMatch As Match In myRegex.Matches(strTargetString)
' If myMatch.Success Then
' LOGGER.Debug("Match success. Matched Value: [{0}]", myMatch.Value)
' If myMatch.Value <> "" Then
' If i = 0 Then
' result = myMatch.Value.ToString
' Else
' result = result & ";" & myMatch.Value.ToString
' End If
' i += 1
' End If
' Else
' LOGGER.Debug("Match failed!")
' End If
' Next
' LOGGER.Debug("Extracted value: [{0}]", result)
' Return result
' Catch ex As Exception
' LOGGER.Error(ex)
' MsgBox("Unexpected Error in extractFromHeader: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
' Return Nothing
' End Try
'End Function
''''
'''' Extrahiert aus den Headerinformationen anhand einer Liste von Regular Expressions eine Empfängeradresse.
''''
'''' Headerinformationen die von getMessageHeaders erzeugt wurden.
'''' Eine Liste von Regular Expressions
'''' Die Ergebnisgruppe, die die Adresse enthält
'''' Eine Emailadresse oder Nothing, wenn keine der Regular Expressions ein Ergebnis lieferte.
'Public Shared Function extractToAddress(messageHeaders As String, RegexList As List(Of Regex), Optional RegexGroup As Integer = 1)
' If IsNothing(messageHeaders) Then
' Return Nothing
' End If
' For Each rx In RegexList
' Dim match As Match = rx.Match(messageHeaders)
' Dim email As String = match.Groups(RegexGroup).Value
' If Not String.IsNullOrWhiteSpace(email) Then
' Return email
' End If
' Next
' Return Nothing
'End Function
End Class