Email Empfang über POP3

    • VB.NET

    SSL ist deaktiviert! Aktivieren Sie SSL für diese Sitzung, um eine sichere Verbindung herzustellen.

      Hallo,

      hat schon jemand mit der neuen OpenPop version gearbeitet? ich schaff es zwar die Betreff zeilen usw aus dem Header zu lesen aber irgendwie bekomms ich nicht auf die reihe die dazugehörige message ansich auszulesen?!

      der mime parser ist ja diesmal gleich in der openpop.dll mit drin und funktioniert ja auch mit dem OpenPop test programm(C#) aber wie gesagt falls mir jemand helfen könnte wie ich ne msg in plaintext auslesen kann wäre ich dankbar :)

      gruß
      hi, super tutorial

      ich wollte das gerne so machen, das wenn ich auf einen radiobutton klickt das dann zu dem jeweiligem pop3server verbunden wird sobald man dann auf button1 klickt das dann die mails des jeweiligen anbieters angezeigt werden. aber das programm hängt sich irgendwie jedesmal auf.

      hier der code von button1:

      VB.NET-Quellcode

      1. Private Sub Button4_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
      2. Dim Messages As New List(Of String)
      3. Dim AttachArray As New ArrayList
      4. Dim pop3 As New POPClient
      5. If RadioButton1.Checked Then
      6. pop3.Disconnect()
      7. pop3.Connect("mx.freenet.de", 587)
      8. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      9. End If
      10. ListBox1.Items.Clear()
      11. If RadioButton2.Checked Then
      12. pop3.Disconnect()
      13. pop3.Connect("pop.gmx.net", 995)
      14. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      15. End If
      16. ListBox1.Items.Clear()
      17. If RadioButton3.Checked Then
      18. pop3.Disconnect()
      19. pop3.Connect("pop.googlemail.com", 995)
      20. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      21. End If
      22. ListBox1.Items.Clear()
      23. If RadioButton4.Checked Then
      24. pop3.Disconnect()
      25. pop3.Connect("pop3.live.com", 995)
      26. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      27. End If
      28. ListBox1.Items.Clear()
      29. If RadioButton5.Checked Then
      30. pop3.Disconnect()
      31. pop3.Connect("pop3.web.de", 995)
      32. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      33. End If
      34. If RadioButton6.Checked Then
      35. pop3.Disconnect()
      36. pop3.Connect("pop.mail.yahoo.de", 995)
      37. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      38. End If
      39. ListBox1.Items.Clear()
      40. If RadioButton7.Checked Then
      41. pop3.Disconnect()
      42. pop3.Connect("popmail.t-online.de", 995)
      43. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      44. End If
      45. ListBox1.Items.Clear()
      46. If RadioButton8.Checked Then
      47. pop3.Disconnect()
      48. pop3.Connect("pop.o2online.de", 995)
      49. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      50. End If
      51. ListBox1.Items.Clear()
      52. If RadioButton9.Checked Then
      53. pop3.Disconnect()
      54. pop3.Connect("pop.smart-mail.de", 995)
      55. pop3.Authenticate(TextBox6.Text, TextBox7.Text)
      56. End If
      57. ListBox1.Items.Clear()
      58. For i As Integer = 1 To POP3.GetMessageCount
      59. Dim m As MIMEParser.Message = POP3.GetMessage(i, False)
      60. ListBox1.Items.Add("From: " & m.From & " <" & m.FromEmail & "> - " & m.Subject)
      61. If m.MessageBody.Count > 0 Then
      62. Dim Attach As New List(Of MIMEParser.Attachment)
      63. Messages.Add(m.MessageBody(m.MessageBody.Count - 1))
      64. For ii As Integer = 1 To m.AttachmentCount - 1
      65. Attach.Add(m.GetAttachment(ii))
      66. Next
      67. AttachArray.Add(Attach)
      68. End If
      69. ' pop3.DeleteMessage(i) ' Wenn die Message nach abholung gelöscht werden soll
      70. Next
      71. POP3.Disconnect()
      72. End Sub


      wie bekomme ich es hin das dies funktioniert?
      cct-eichsfeld.de (Probleme? Fragen?, einfach mal reinschauen :-))
      ich habe ein problem. also sobald ich die anwendung starte bekomme ich folgende meldungen.

      Eine Ausnahme (erste Chance) des Typs "System.IO.IOException" ist in mscorlib.dll aufgetreten.
      Eine Ausnahme (erste Chance) des Typs "OpenPOP.POP3.InvalidPasswordException" ist in OpenPOP.dll aufgetreten.

      sobald ich dann die emails empfangen will stürzt das programm ab. beim 1. start hats funktioniert aber beim 2. mal kamen dann die fehlermeldungen. warum weiss ich nicht.

      passwort und benutzername sind richtig eingegeben!

      mfg user2100
      cct-eichsfeld.de (Probleme? Fragen?, einfach mal reinschauen :-))
      Morgen,

      ich hab nun auf Basis von OpenPop.NET 2.0.2 das Mail abrufen hinbekommen... der Code mag evtl etwas Kunterbunt wirken aber es funzt *g*
      Bei mir kams aber darauf an die mail nur als "TEXT" auszulesen... HTML brauch ich nicht :)

      VB.NET-Quellcode

      1. Dim MailCount As Integer
      2. Dim pop3 As New Pop3Client
      3. Dim MailHost As String
      4. Private Sub btnGetMail_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetMail.Click
      5. MailHost = "MAIL.SERVER.COM"
      6. If pop3.Connected = 1 Then
      7. pop3.Disconnect()
      8. Else
      9. pop3.Connect(MailHost, 110, useSsl:=0)
      10. pop3.Authenticate("benutzer", "passwort")
      11. MailCount = pop3.GetMessageCount
      12. txtMailCount.Text = MailCount
      13. For i As Integer = 1 To pop3.GetMessageCount
      14. Dim m As OpenPop.Mime.Header.MessageHeader = pop3.GetMessageHeaders(i)
      15. ListBox1.Items.Add(m.Subject)
      16. Next
      17. pop3.Disconnect()
      18. End If
      19. End Sub
      20. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
      21. If pop3.Connected = 1 Then
      22. pop3.Disconnect()
      23. Else
      24. pop3.Connect(MailHost, 110, useSsl:=0)
      25. pop3.Authenticate("benutzer", "passwort")
      26. Dim m As OpenPop.Mime.Message = pop3.GetMessage(sender.SelectedIndex + 1)
      27. Dim Nachricht
      28. Nachricht = m.FindFirstPlainTextVersion.GetBodyAsText.ToString
      29. TextBox1.Text = Nachricht
      30. pop3.Disconnect()
      31. End If
      32. End Sub


      Probleme hatte ich irgendwie mit dem Index und der ersten Mail im Postfach... die Listbox hatte immer Index=0 als start und die Mails beginnen von 1 ...... deshalb "sender.SelectedIndex +1"

      falls jemand den code verbessern kann dann immer her damit... ich bin froh das ich es so hinbekommen hab *g*
      hey, ich schreib grad an nem kleinen mail-client und hab mir ne entsprechend klasse zum abrufen der e-mail gebaut, hier mal einen Ausschnitt, wie man ungelesene Mails abrufen kann:

      VB.NET-Quellcode

      1. Public Sub DownloadUnseenMessagesFromServer()
      2. '' Prüfe vorab, ob Liste mit bereits gelesenen E-Mails existiert
      3. If Not My.Computer.FileSystem.FileExists(".....") Then
      4. DownloadAllMessagesFromServer()
      5. Exit Sub
      6. End If
      7. Dim lstrUIDsOnServer As New List(Of String)
      8. Dim lstrLokalUIDs As New List(Of String)
      9. ' Lade die Liste mit den bereits vorhandenen Nachrichten (lokal)
      10. lstrLokalUIDs = mySerializer.Serializer.DeSerialize(True, "....", lstrLokalUIDs)
      11. If ClientConnect() Then
      12. ' Anzahl der vorhandenen Ungelesenen E-Mails
      13. Dim iUnseenCount As Integer = CountUnseenMessageOnServer()
      14. ' Downloade alle UIDs vom Server
      15. lstrUIDsOnServer = myPop3Client.GetMessageUids()
      16. Dim DArgs As myMessagesDownloadArgs
      17. Dim DArgsComplete As myMessageDownloadCompleteArgs
      18. Dim ErrHandler As myPOPError
      19. Dim iDownloadPositionCount As Integer = 0
      20. For i As Integer = 0 To lstrUIDsOnServer.Count - 1
      21. '' Abbruch des Downloadsvorgang durch den Benutzer
      22. If AbortDownload And i <> 0 Then
      23. i = lstrUIDsOnServer.Count - 1
      24. AbortDownload = False
      25. If ConnectedToServer() Then Disconnect()
      26. End If
      27. ' Ist die NICHT UID(i) Bestandteil der Lokalen gespeicherten UIDs
      28. ' -> Versuche Nachrichten zu Downloaden
      29. If Not lstrLokalUIDs.Contains(lstrUIDsOnServer(i)) Then
      30. iDownloadPositionCount += 1
      31. Try
      32. Dim dblSize As Double = Math.Round(CDbl((myPop3Client.GetMessageSize(i + 1) / 1024)), 2)
      33. Dim iPerCent As Integer = CInt(((iDownloadPositionCount / iUnseenCount) * 100))
      34. DArgs = New myMessagesDownloadArgs(iDownloadPositionCount, iUnseenCount, iPerCent, dblSize)
      35. RaiseEvent OnMessageDownload(Me, DArgs)
      36. Dim mEmailMessage As OpenPop.Mime.Message = myPop3Client.GetMessage(i + 1)
      37. DArgsComplete = New myMessageDownloadCompleteArgs(mEmailMessage, lstrUIDsOnServer(i))
      38. lstrLokalUIDs.Add(lstrUIDsOnServer(i))
      39. mySerializer.Serializer.Serialize(True, "..", lstrLokalUIDs)
      40. Catch ex As OpenPop.Pop3.Exceptions.PopServerException
      41. ErrHandler = New myPOPError(sEtype, ex.Message)
      42. RaiseEvent OnError(Me, ErrHandler)
      43. Catch ex As Exception
      44. ErrHandler = New myPOPError(sEtype, ex.Message)
      45. RaiseEvent OnError(Me, ErrHandler)
      46. End Try
      47. End If
      48. Next
      49. End If
      50. Disconnect()
      51. End Sub
      Mein persönlicher Geheimtipp:
      Fertigt in regelmäßigen Zeitabständen ein Kopie eurer Projekte an :evil:
      ich hab auch ein kleines problemchen....
      die mails werden in einer liste angezeigt,
      doch nicht hiner jedem titel verbirgt sich eine nachricht sprich:

      titel1 nachricht 1
      titel2 nachricht 3 <- anscheinend gibt es keine nachricht2, nachricht 3 verschiebt sich um 1 index nach unten
      titel3 nachricht 4
      titel4 nachricht 5
      titel5 - keine nachricht -

      hat jemand noch das problem, hats glöst oder ideen?
      würde mich sehr freuen

      mfg HeadShotHarp

      PS: hab pop.1und1.de und port 110 (ist korrekt steht auf der homepage, und es funktioniert ja auch ... fast)
      Funktioniert alles Wunderbar nur wie bewerkstellige ich das in der listbox steht "Keine Nachrichten" wenn keine mails auf dem server liegen?

      VB.NET-Quellcode

      1. Imports System.IO
      2. Imports OpenPOP
      3. Imports OpenPOP.POP3
      4. Public Class Form1
      5. Dim Messages As New List(Of String)
      6. Dim AttachArray As New ArrayList
      7. Dim pop = ""
      8. Dim user = ""
      9. Dim pass = ""
      10. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      11. Dim pop3 As New POPClient
      12. pop3.Disconnect()
      13. pop3.Connect(pop, 110)
      14. pop3.Authenticate(user, pass)
      15. ListBox1.Items.Clear()
      16. For i As Integer = 1 To pop3.GetMessageCount
      17. Dim m As MIMEParser.Message = pop3.GetMessage(i, False)
      18. ListBox1.Items.Add("From: " & m.From & " <" & m.FromEmail & "> - " & m.Subject)
      19. If m.MessageBody.Count > 0 Then
      20. Dim Attach As New List(Of MIMEParser.Attachment)
      21. Messages.Add(m.MessageBody(m.MessageBody.Count - 1))
      22. For ii As Integer = 1 To m.AttachmentCount - 1
      23. Attach.Add(m.GetAttachment(ii))
      24. Next
      25. AttachArray.Add(Attach)
      26. End If
      27. 'pop3.DeleteMessage(i) ' Wenn die Message nach abholung gelöscht werden soll
      28. Next
      29. pop3.Disconnect()
      30. End Sub
      31. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As ListBox, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
      32. TextBox1.Text = Messages(sender.SelectedIndex)
      33. ListBox2.Items.Clear()
      34. For Each att As MIMEParser.Attachment In AttachArray(sender.SelectedIndex)
      35. ListBox2.Items.Add(att.ContentFileName & " " & att.ContentLength & " Byte")
      36. Next
      37. End Sub
      38. Private Sub ListBox2_SelectedIndexChanged(ByVal sender As ListBox, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
      39. Dim att As MIMEParser.Attachment = AttachArray(ListBox1.SelectedIndex)(sender.SelectedIndex)
      40. Dim fs As FileStream = File.Create(Application.StartupPath & "/attach/" & att.ContentFileName)
      41. Dim da() As Byte
      42. da = att.DecodedAttachment
      43. fs.Write(da, 0, da.Length)
      44. MsgBox("'" & att.ContentFileName & "' wurde gespeichert!")
      45. fs.Close()
      46. End Sub
      47. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      48. Dim pop3 As New POPClient
      49. pop3.Disconnect()
      50. pop3.Connect(pop, 110)
      51. pop3.Authenticate(user, pass)
      52. ListBox1.Items.Clear()
      53. For i As Integer = 1 To pop3.GetMessageCount
      54. Dim m As MIMEParser.Message = pop3.GetMessage(i, False)
      55. ListBox1.Items.Add("From: " & m.From & " <" & m.FromEmail & "> - " & m.Subject)
      56. If m.MessageBody.Count > 0 Then
      57. Dim Attach As New List(Of MIMEParser.Attachment)
      58. Messages.Add(m.MessageBody(m.MessageBody.Count - 1))
      59. For ii As Integer = 1 To m.AttachmentCount - 1
      60. Attach.Add(m.GetAttachment(ii))
      61. Next
      62. AttachArray.Add(Attach)
      63. End If
      64. pop3.DeleteMessage(i)
      65. Next
      66. pop3.Disconnect()
      67. End Sub
      68. End Class


      Edit by ~blaze~:
      *vb-Tags eingefügt*

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

      Mails in Liste anzeigen

      Hi,
      ich hab folgendes Problem ich möchte die bisher in der Listbox abgelegten mails wie in anderen Mail Programmen in einer Liste mit Spalten wie (Absender, Betreff, Datum, etc.) abspeichern.

      Auch hab ich das Problem, dass immer wenn ich n Anhang speichern will, folgender Fehler kommt:

      System.IO.IOException: Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.



      Mein Code:


      VB.NET-Quellcode

      1. Imports System.IO
      2. Imports OpenPOP
      3. Imports OpenPOP.POP3
      4. Public Class Form1
      5. Dim Messages As New List(Of String)
      6. Dim AttachArray As New ArrayList
      7. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      8. Form2.Show()
      9. End Sub
      10. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
      11. Form3.Show()
      12. End Sub
      13. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      14. Me.Close()
      15. End Sub
      16. Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
      17. Mailabrufen()
      18. End Sub
      19. Private Sub Mailabrufen()
      20. Form5.TextBox1.Text = "Fee-Mail kommuniziert mit Ihrem Postfach ..."
      21. Form5.Show()
      22. Dim pop3 As New POPClient
      23. pop3.Disconnect()
      24. Form5.ProgressBar1.Value = 20
      25. pop3.Connect(My.Settings.eingangsserver, My.Settings.eingangsport)
      26. pop3.Authenticate(My.Settings.eingangsbenutzer, My.Settings.eingangspasswort)
      27. Form5.ProgressBar1.Value = 55
      28. ListBox1.Items.Clear()
      29. For i As Integer = 1 To pop3.GetMessageCount
      30. Dim m As MIMEParser.Message = pop3.GetMessage(i, False)
      31. 'MessageBox.Show(m.From)
      32. ListBox1.Items.Add("Betreff: " & m.subject & " Absender:" & m.FromEmail & " Zeit:" & m.Date)
      33. Form5.ProgressBar1.Value = 80
      34. If m.MessageBody.Count > 0 Then
      35. Dim Attach As New List(Of MIMEParser.Attachment)
      36. Messages.Add(m.MessageBody(m.MessageBody.Count - 1))
      37. For ii As Integer = 1 To m.AttachmentCount - 1
      38. Attach.Add(m.GetAttachment(ii))
      39. Next
      40. AttachArray.Add(Attach)
      41. End If
      42. Form5.ProgressBar1.Value = 95
      43. ' pop3.DeleteMessage(i) ' Wenn die Message nach abholung gelöscht werden soll
      44. Next
      45. pop3.Disconnect()
      46. Form5.Close()
      47. End Sub
      48. Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
      49. WebBrowser1.DocumentText = Messages(sender.SelectedIndex)
      50. ListBox2.Items.Clear()
      51. For Each att As MIMEParser.Attachment In AttachArray(sender.SelectedIndex)
      52. ListBox2.Items.Add(att.ContentFileName & " " & att.ContentLength & " Byte")
      53. Next
      54. End Sub
      55. Private Sub ListBox2_SelectedIndexChanged(ByVal sender As ListBox, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
      56. Dim att As MIMEParser.Attachment = AttachArray(ListBox1.SelectedIndex)(sender.SelectedIndex)
      57. Dim fs As FileStream = File.Create(Application.StartupPath & "/attach/" & att.ContentFileName)
      58. Dim da() As Byte
      59. da = att.DecodedAttachment
      60. fs.Write(da, 0, da.Length)
      61. MsgBox("'" & att.ContentFileName & "' wurde gespeichert!")
      62. fs.Close()
      63. End Sub
      64. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      65. WebBrowser1.DocumentText = "Herzlichen Willkommen bei Fee-Mail"
      66. TextBox2.Text = TimeOfDay
      67. End Sub
      68. Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
      69. If My.Settings.email = "@" Or My.Settings.eingangsserver = "pop3." Or My.Settings.eingangsbenutzer = "user" Or My.Settings.eingangspasswort = "userpw" Or My.Settings.ausgangsserver = "smtp." Or My.Settings.ausgangsbenutzer = "user" Or My.Settings.ausgangspasswort = "userpw" Then
      70. MsgBox("Bitte nehmen Sie die Email-Konto Einstellungen vor.")
      71. Form3.Show()
      72. Form3.BringToFront()
      73. Else
      74. Mailabrufen()
      75. End If
      76. End Sub
      77. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      78. TextBox2.Text = TimeOfDay
      79. End Sub
      80. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
      81. Mailabrufen()
      82. End Sub
      83. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
      84. End Sub
      85. Private Sub OptionenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OptionenToolStripMenuItem.Click
      86. Form3.Show()
      87. End Sub
      88. Private Sub NachrichtenAbrufenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NachrichtenAbrufenToolStripMenuItem.Click
      89. Mailabrufen()
      90. End Sub
      91. Private Sub AdressbuchVerwaltenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AdressbuchVerwaltenToolStripMenuItem.Click
      92. Form4.Show()
      93. End Sub
      94. Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
      95. email.Show()
      96. email.WebBrowser1.DocumentText = Messages(sender.SelectedIndex)
      97. End Sub
      98. End Class



      gruß schmaetz

      Edit by ~blaze~:
      *vb-Tags eingefügt*

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „~blaze~“ ()

      Dodo schrieb:

      Ja, dann hast du aber eine HTML E-Mail geschrieben und keine normale Text E-Mail, das kann man meist irgendwie beim Mailschreiben auswählen, zumindest bei Web.de.
      Um die Mail anzeigen zu lassen müsstest du halt entweder eine Browser Engine nehmen wie z.B. das WebBrowser Control oder du parsed das selbst und suchst dir via RegEx den Content selber heraus.


      Tut mir Leid, dass ich das Thema pusche...
      Aber ich habe genau das Selbe Porblem, statt der Mail wird in textbox1 der html-code (sieht für mich zumindest danach aus) angezeigt.
      Nun meine Frage ist, ob ich statt dem Code wirklich nur den Text anzeigen lassen kann...?

      LG Alex034
      Hast du das von dir zitierte aufmersam gelesen? Ich zitiere es gerne nochmal

      Um die Mail anzeigen zu lassen müsstest du halt entweder eine Browser Engine nehmen wie z.B. das WebBrowser Control oder du parsed das selbst und suchst dir via RegEx den Content selber heraus.
      KEINE VB-FRAGEN ÜBER PN STELLEN!

      Wenn du einem Hungernden einen Fisch schenkst, wird er morgen wieder hungrig sein, bringst du ihm das Fischen bei, wird er nie wieder hungrig sein.

      Alle Copy & Paste Geber und Forderer, nehmt euch dies zu Herzen!
      Bei mir kommt der Fehler! jemand ne Idee?
      Bilder
      • Unbenannt.PNG

        80,65 kB, 1.554×803, 81 mal angesehen
      Hallo, ich benutze dieses programm nun auch schon seit einiger zeit.

      VB.NET-Quellcode

      1. Public Sub Pruefen_Emaileingang()
      2. 'If Programm.ExeRuning = False Then Exit Sub
      3. 'If EMailFehlerAufgetreten = True Then Exit Sub
      4. If Rechner.EmailAdresse = Nothing Then Exit Sub
      5. If Rechner.EmailPasswort = Nothing Then Exit Sub
      6. If Rechner.EmailProvider = Nothing Then Exit Sub
      7. If Rechner.EmailPort = 0 Then Exit Sub
      8. EMailAnzahl = 0
      9. EMailString = Nothing
      10. Try
      11. pop3 = New POPClient
      12. Messages = New List(Of String)
      13. AttachArray = New ArrayList
      14. pop3.Disconnect()
      15. pop3.Connect(Rechner.EmailProvider, Rechner.EmailPort)
      16. pop3.Authenticate(Rechner.EmailAdresse, Rechner.EmailPasswort)
      17. For i As Integer = 1 To pop3.GetMessageCount
      18. Dim m As MIMEParser.Message = pop3.GetMessage(i, False)
      19. EMailString = EMailString & "Von: " & m.From & " | Betreff: " & m.Subject & vbNewLine
      20. If m.From <> Nothing Then
      21. EMailAnzahl = EMailAnzahl + 1
      22. End If
      23. If m.MessageBody.Count > 0 Then
      24. Dim Attach As New List(Of MIMEParser.Attachment)
      25. Messages.Add(CStr(m.MessageBody(m.MessageBody.Count - 1)))
      26. For ii As Integer = 1 To m.AttachmentCount - 1
      27. Attach.Add(m.GetAttachment(ii))
      28. Next
      29. AttachArray.Add(Attach)
      30. End If
      31. Next
      32. pop3.Disconnect()
      33. EMailString = HieroglypheToUmlaut(EMailString)
      34. LetzteEmailPruefung = CDate(Now)
      35. Hauptmenue.TS_EMail.Text = EMailAnzahl.ToString & " Mail"
      36. If EMailAnzahl = 0 Then
      37. Hauptmenue.TS_EMail.ForeColor = System.Drawing.SystemColors.ControlText
      38. Else
      39. Hauptmenue.TS_EMail.ForeColor = Color.Blue
      40. End If
      41. EMailFehlerAufgetreten = False
      42. Catch ex As Exception
      43. EMailAnzahl = 1
      44. EMailString = "Fehler auf dem Mail-Server" & vbNewLine & _
      45. "Externe Fehlermeldung: " & vbNewLine & ex.Message
      46. Hauptmenue.TS_EMail.Text = EMailAnzahl.ToString & " Mail-Fehler"
      47. Hauptmenue.TS_EMail.ForeColor = Color.Red
      48. EMailFehlerAufgetreten = True
      49. End Try
      50. End Sub


      Seit ca. zwei Wochen bekomme ich die Meldung: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
      Wie gesagt, hole nun schon Monate mit diesem Programmteil meine email's ab.
      Ich bin bei Kabel Deutschland. Mit Windows Live Mail kann ich mit ungeänderten Einstellungen meine mail's abholen.
      Gruß Markus
      Bei mir Funktioniert es perfekt! mit gmx.at

      Nun ist aber bei mir ein neues Problem aufgetreten, ich hab einen Timer der mir alle 10 Sekunden die Emails abruft.
      Nach ca. 6-7 Abrufen ist das Programm tot, weil er sich nicht mehr verbinden kann!
      Gibt es so etwas wie eine Refresh-Funktion das ich mich nicht alle 10 Sekunden neu verbinden muss und somit das Problem umgehen kann?

      Danke im vorraus! :)
      Die Anzahl an POP3-Abrufen wird bei GMX begrenzt sein, wie so ziemlich bei jedem Freemailer. Web.de erlaubt z.B. nur einen alle 10 Minuten, wenn ich mich richtig erinnere.

      Ein Abruf alle 10 Sekunden ist auf jeden Fall viel zu oft - 10 Minuten sind da schon sinnvoller. Bei unwichtigeren Postfächern reichen auch 30 Minuten locker aus.
      Gruß
      hal2000
      Möchte noch kurz eine Rückmeldung geben. Habe folgende Änderung gemacht und seitdem geht es:

      VB.NET-Quellcode

      1. For i As Integer = 1 To pop3.GetMessageCount
      2. Dim m As MIMEParser.Message = pop3.GetMessage(i, True) ' Von ursprünglich False auf True geändert.


      Hoffe, dass es nun so bleibt.
      Gruß Markus