Email in RichTextbox anzeigen lassen

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Email in RichTextbox anzeigen lassen

    Hallo Community
    ich habe mich heute im Forum angemeldet und hab schon gleich eine Frage :)
    Nämlich habe ich ein Email Programm erstellt unter visual Basic 2010
    wo ich mails schreiben und versenden und mails abholen kann.
    Das versenden klappt soweit auch wunderbar und das abholen geht eigentlich auch.
    Jetz ist es aber noch mein Ziel den Inhalt der Ausgewählten email aus der Listbox in einer RichTextBox oder ähnlichem
    anzeigen zu lassen. Die Sufu hab ich auch schon genutzt hab aber nichts gefunden was mir weitergeholfen hat.
    Vielleicht könnt ihr mir dazu ja ein paar tipps geben?
    ich bedank mich schonmal im vorraus für eure Antworten
    Willkommen im Forum. :thumbup:
    Vielleicht zeigst Du uns mal Deinen Code (Achtung, Adressen und Passwörter blockern), da lässt es sich leichter helfen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Imports System.IO
    Imports OpenPOP
    Imports OpenPOP.POP3



    Public Class Mails


    Dim messages As New List(Of String)
    Dim AttachArray As New ArrayList


    Private Sub Mails_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


    Dim pop3 As New POPClient

    pop3.Disconnect()
    pop3.Connect("pop.host..de", 110)
    pop3.Authenticate("Benutzername", "passwort")

    ListBox1.Items.Clear()

    For i As Integer = 1 To pop3.GetMessageCount
    Dim m As MIMEParser.Message = pop3.GetMessage(i, False)
    Dim s As String = Nothing

    ListBox1.Items.Add("Von: " & m.From & " <" & m.FromEmail & "> - " & m.Subject)

    If m.MessageBody.Count > 0 Then
    Dim Attach As New List(Of MIMEParser.Attachment)
    Messages.Add(m.MessageBody(m.MessageBody.Count - 1))

    For ii As Integer = 1 To m.AttachmentCount - 1
    Attach.Add(m.GetAttachment(ii))

    Next
    AttachArray.Add(Attach)

    End If

    Next
    pop3.Disconnect()

    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    TextBox1.Text = messages(sender.SelectedIndex)'Hier Hab ich versucht den inhalt in einer textBox darustellen hat aber nicht funktioniert

    ListBox2.Items.Clear()
    For Each att As MIMEParser.Attachment In AttachArray(sender.SelectedIndex)
    ListBox2.Items.Add(att.ContentFileName & " " & att.ContentLength & " Byte")

    Next
    End Sub

    Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
    Dim att As MIMEParser.Attachment = AttachArray(ListBox1.SelectedIndex)(sender.SelectedIndex)
    Dim fs As FileStream = File.Create(Application.StartupPath & "/attach/" & att.ContentFileName)
    Dim da() As Byte

    da = att.DecodedAttachment

    fs.Write(da, 0, da.Length)

    MsgBox("'" & att.ContentFileName & "' wurde gespeichert!")

    fs.Close()

    End Sub
    End Class
    Gib Deinem Projekt zunächst Option Strict On
    Probier mal

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. ' ...
    3. ListBox1.Items.Clear()
    4. messages.Clear()
    5. ' ...
    6. End Sub
    7. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    8. TextBox1.Text = messages(ListBox1.SelectedIndex)
    9. ' ...
    10. End Sub
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    erstmal danke für die schnelle antwort.
    Es wird allerdings hier ein Fehler angezeigt:

    VB.NET-Quellcode

    1. ListBox1.Items.Add("Von: " & m.From & " <" & m.FromEmail & "> - " & m.Subject)

    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt: Diese fehlermeldung
    wird mir angezeigt
    Ich denke mal, da ist gerade keine Mail da.
    Mach mal:

    VB.NET-Quellcode

    1. If m Is Nothing Then
    2. MessageBox.Show("Keine Mail")
    3. Return
    4. End If
    5. ListBox1.Items.Add("Von: " & m.From & " <" & m.FromEmail & "> - " & m.Subject)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Daran scheints gelegen zu haben allerdings werden mir erstens noch zwei alte Mails angezeigt und außerdem gibt es sogar noch eine ungelesene nachricht

    EDIT: Die Email wird ja jetz in einer RichTextBox dargestellt allerdings nur mit berge html code drin

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Horatius“ ()

    Probier mal einen WebBrowser zur Anzeige der Mail-Texte.
    Was ist OpenPOP für ein Ding?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Probier mal so:

    VB.NET-Quellcode

    1. WebBrowser1.DocumentText = "<start>bla</start>"
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich komme der lösung wie es scheint näher:D
    aber wenn ich das dann mache kommt kommt wieder ne Fehlermeldung, und zwar wenn ich in der Listbox auf den eintrag drücke um die email im
    Webbrowser darstellen zu lassen:
    Private Sub ListBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox3.SelectedIndexChanged
    WebBrowser1.DocumentText = "<start>bla</start>"

    ListBox3.Items.Clear()
    For Each att As MIMEParser.Attachment In AttachArray(sender.SelectedIndex)Hier ist der Fehler er lautet: Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
    Parametername: index

    ListBox3.Items.Add(att.ContentFileName & " " & att.ContentLength & " Byte")

    Next

    End Sub

    Aber die Sache mit dem webbrowser find ich klasse ich hatte das auch schon vorher versucht wusste allerdings den code nicht
    für den webbrowser:D
    Option Strict On, um mich zu wiederholen.

    VB.NET-Quellcode

    1. AttachArray(sender.SelectedIndex)
    ist Grütze, weil sender vom Typ Object ist.

    VB.NET-Quellcode

    1. For Each att As MIMEParser.Attachment In AttachArray(sender.SelectedIndex)
    Ich denke mal, dass AttachArray nicht über genügend Einrträge verfügt, und somit über den Eintrag zum SelectedIndex nicht verfügt.
    -----------------------------
    @Horatius: Was ist OpenPOP für ein Ding?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mach

    RodFromGermany schrieb:

    Option Strict On, um mich zu wiederholen.

    und der Compiler sagt Dir, was falsch ist. :D
    -------------------
    Würdest Du bitte nebenbei mal diese Frage beantworten?

    RodFromGermany schrieb:

    Was ist OpenPOP für ein Ding?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!