Hallo,
mit nachfolgenden Script werden Mails aus einer NotesDB in eine SQL-Tabelle kopiert.
Leider geht dabei die Formatierung des Bodys flöten.
Weiß evtl. jemand Rat, wie die Formatierung beibehalten werden kann?
Außerdem wäre es schön, wenn eingebettete Bilder (keine Anhänge), extrahiert werden könnten, um diese im Filesystem abspeichern zu können.
Möglicherweise könnte mir auch hier einer helfen.
Vielen Dank und ein schönes Wochenende.
Code
Friend Sub MailEmpfangen()
10: Dim acc As New MailAccount
20: Dim strSubject As String
30: Dim intFirst As Int16
40: Dim intLast As Int16
50: Dim varTicketNr As VariantType
60: Dim strFiles As String = vbNullString
70: Dim strFilename As String = vbNullString
80: Dim strDirectory As String = vbNullString
90: Dim strFullFileName As String = vbNullString
100: Dim blAtt As Boolean
110: Dim blTID As Boolean
120: Dim strTicket As String = vbNullString
130: Dim strFROM As String = vbNullString
140: Dim strCC As String = vbNullString
150: Start.StatusText.Text = "Postfach wird gelesen..."
160: Try
170: With acc
180: .Host = "HostIP"
190: .DatabaseFilename = "mailG\itsupport.nsf"
200: If CBool(CType(Start.TableLayoutPanel1.Controls("txtOption1_1"), TextBox).Text) = True Then
210: .Password = "xxxxxx"
220: Else
230: .Password = ""
240: End If
250: End With
'Alle Mails auflisten
260: Dim lstMails As NotesMailCollection = NotesTools.GetMails(acc, True)
270: For Each itm As NotesMail In lstMails
280: strSubject = itm.Subject
290: intFirst = CShort(InStr(strSubject, "#"))
300: intLast = CShort(InStrRev(strSubject, "#"))
310: strFROM = Replace(Replace(itm.From, "CN=", ""), "/O=CompanyName", "", , , CompareMethod.Text)
320: strCC = Replace(Replace(itm.CC, "CN=", ""), "/O=CompanyName", "", , , CompareMethod.Text)
'Anhänge auslesen
330: For Each att As Domino.NotesEmbeddedObject In itm.AttachmentFilenames
340: Start.StatusText.Text = "Attachments werden gelesen..."
350: strFilename = att.Name.ToString
360: strDirectory = "\\ServerIP\Daten\Programme\Support\Public\Ablage\MailIn"
370: strFullFileName = strDirectory & "\" & Now.ToFileTime & "_" & strFilename
380: strFiles = strFullFileName & "|" & strFiles
390: att.ExtractFile(strFullFileName)
400: blAtt = True
410: Next
420: If blAtt = True Then
430: strFiles = Mid(strFiles, 1, Len(strFiles) - 1)
440: Else
450: strFiles = vbNullString
460: End If
'Entscheidung ob mit oder ohen Ticket-ID
470: If intFirst > 0 And intLast > 0 And (intLast > intFirst) Then
480: varTicketNr = CType(Mid(strSubject, intFirst + 1, intLast - intFirst - 1), VariantType)
490: If IsNumeric(varTicketNr) Then
'mit Ticketnummer
500: blTID = True
510: Start.StatusText.Text = "Tabelle 'tbl_Ticket_Mail' wird geschrieben..."
520: Start.Tbl_TICKET_MAILTableAdapter1.Insert(varTicketNr, strSubject, strFROM, strCC, itm.Body, strFiles, True, Now(), True)
530: strTicket = "Ja"
540: End If
550: Else
'ohne Ticketnummer
560: blTID = False
570: varTicketNr = 0
580: Start.StatusText.Text = "Tabelle 'tbl_Mail' wird geschrieben..."
590: Start.Tbl_MAILTableAdapter1.Insert(varTicketNr, strSubject, strFROM, strCC, itm.Body, strFiles, True, Now())
600: strTicket = "Nein"
610: End If
620: Start.ListBox1.Items.Insert(0, Now() & " Mail empfangen, von: " & strFROM & " - Ticket: " & strTicket & " Nr: " & varTicketNr.ToString & " - Betreff: " & strSubject & " - mit Anhang: " & blAtt)
630: blAtt = False
640: strFiles = vbNullString
650: Next
660: Catch ex As Exception
670: SetText("FEHLER Zeile: " & Err.Erl.ToString & " - " & ex.Message & " - " & ex.Data.ToString)
680: Finally
690: Start.StatusText.Text = "Bereit..."
700: acc = Nothing
710: End Try
End Sub
Alles anzeigen