E-mails VERWALTEN

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Alex034.

    E-mails VERWALTEN

    Hallo, gibt es eine Möglichkeit E-Maisl in VB zu verwalten, sprich sich ankommende Mails durchzulesen.? In etwar wie Outlock von Windows (<- sorry wenn ich es falsch geschrieben hab :D)

    LG

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

    In meinem ersten Link findest du eine Bibliothek, wie du Nachrichten von einem IMAP-Server herunterlädst (Wiki: de.wikipedia.org/wiki/IMAP)
    In dem dritten, wie du Nachrichten von einem POP3-Server herunterlädst (Wiki: de.wikipedia.org/wiki/POP3)
    In dem vierten findest du Informationen, wie du eine Nachricht per SMTP versenden kannst (Wiki: de.wikipedia.org/wiki/SMTP)
    Nun musst du dir aussuchen ob du POP3, IMAP oder beides unterstützen willst.
    Dann wie deine Oberfläche aussehen soll und die du die Einrichtung machst.
    Ein Mail-Management-Programm ist nicht mal eben in zwanzig Minuten geschrieben. Also mach dir gute Gedanken, wie du deinem Benutzer entgegentreten willst und was der Benutzer sehen soll.
    Natürlich muss deine Software auch sicher und vor allem stabil laufen.
    das mit dem smtp, also mails versenden habe ich.

    VB.NET-Quellcode

    1. Dim myEmail = New MailMessage
    2. Try
    3. myEmail.From = New MailAddress(Form2.em.Text)
    4. myEmail.To.Add(xy.Text)
    5. myEmail.Subject = betreff.Text
    6. myEmail.Body = emtext.Text
    7. Dim smtp As New SmtpClient("smtp." & textbox1.text)
    8. smtp.Port = 587
    9. smtp.EnableSsl = True
    10. smtp.Credentials = New System.Net.NetworkCredential(Form2.em.Text, Form2.pw.Text)
    11. smtp.Send(myEmail)
    12. MsgBox("Die E-mail wurde an: " & vbCrLf & xy.Text & " versendet")
    13. Catch ex As Exception
    14. MsgBox("Ein Fehler ist aufgetreten")
    15. End Try


    Das wäre das Event für button1 (senden)
    gibt es hier die ,,gegenteilfunktion" ,oder könntest du mir eventuell doch mal wegen dem code helfen?

    Zu der Frage: s. meine Signatur.
    Wir sind hier kein Korrigier-Verein. Du kannst Eigeninitiative zeigen und dir das selber beibringen, ist nicht sonderlich schwer.
    Ressourcen und Informationen hast du bekommen, jetzt liegt es an dir, das in dein Programm einzubringen.
    Geholfen wird dir hier sicherlich gerne, nur musst du, wie gesagt, auch Eigeninitiative bereitstellen und dich dem Problem widmen. Denn ohne Problemlösungen wirst du nicht weiterkommen können.
    Alter Quellcode:
    Spoiler anzeigen
    Sehe ich ein. dann bleibe ich beim Thema:

    durch meine recherchen (wie auch immer das geschrieben wird :b) bin ich auf die Lösung über eine Konsolenanwendung gekommen,
    meinen Quellcode habe ich soweit fertig, nur es will nicht klappen.

    Quellcode

    1. Imports System.Text
    2. Imports Limilabs.Mail
    3. Imports Limilabs.Mail.MIME
    4. Imports Limilabs.Mail.Headers
    5. Imports Limilabs.Client.IMAP


    Müsste soweit richtig sein oder?

    Dann weiter im Text...:

    Quellcode

    1. Module Module1
    2. Private Const _server As String = "web.de" '<-- Da stimmt was nicht, oder? Ich komm nicht drauf
    3. Private Const _user As String = "meine_mail@web.de"
    4. Private Const _password As String = "passwort"


    So müsste es doch auch stimmen, oder?

    Weiter...

    Quellcode

    1. Sub Main()
    2. Using imap As New Imap
    3. imap.Connect(_server)
    4. imap.Login(_user, _password)
    5. imap.SelectInbox()
    6. Dim uids As List(Of Long) = imap.SearchFlag(Flag.Unseen)
    7. Console.WriteLine("Number of unseen messages is: " + uids.Count)
    8. For Each uid As Long In uids
    9. Dim email As IMail = New MailBuilder() _
    10. .CreateFromEml(imap.GetMessageByUID(uid))
    11. ProcessMessage(email) '<--- ist ein neuer sub
    12. Next
    13. imap.Close()
    14. End Using


    Dann habe ich hier noch eine Function

    [expander]

    Quellcode

    1. Private Function JoinAddresses(ByVal addresses As IList(Of MailAddress)) As String
    2. Dim builder As New StringBuilder
    3. For Each address As MailAddress In addresses
    4. If (TypeOf address Is MailGroup) Then
    5. Dim group As MailGroup = CType(address, MailGroup)
    6. builder.AppendFormat("{0}: {1};, ", group.Name, JoinAddresses(group.Addresses))
    7. End If
    8. If (TypeOf address Is MailBox) Then
    9. Dim mailbox As MailBox = CType(address, MailBox)
    10. builder.AppendFormat("{0} <{1}>, ", mailbox.Name, mailbox.Address)
    11. End If
    12. Next
    13. Return builder.ToString()
    14. End Function


    Ja und halt das Speichern...

    Spoiler anzeigen

    Quellcode

    1. Console.WriteLine("Subject: " + email.Subject)
    2. Console.WriteLine("From: " + JoinMailboxes(email.From))
    3. Console.WriteLine("To: " + JoinAddresses(email.To))
    4. Console.WriteLine("Cc: " + JoinAddresses(email.Cc))
    5. Console.WriteLine("Bcc: " + JoinAddresses(email.Bcc))
    6. Console.WriteLine("Text: " + email.Text)
    7. Console.WriteLine("HTML: " + email.Html)
    8. Console.WriteLine("Attachments: ")
    9. For Each attachment As MimeData In email.Attachments
    10. Console.WriteLine(attachment.FileName)
    11. attachment.Save("C:\" + attachment.SafeFileName)
    12. Next


    Lg Alex034

    Ich hoffe jemand kennt sich gut genug damit aus, den Fehler, oder vielleicht auch DIE FEHLER zu finden.


    Okay ich habe den Fehler selbst gefunden, er muss anscheinend zu imap.web.de connecten. Alo falsche Adresse, aber jetzt bekomme ich einen Fehler undzwar hier:

    VB.NET-Quellcode

    1. Console.WriteLine("Number of unseen messages is: " + uids.Count)

    Was ist da falsch?

    Schonwieder Edit: Es musste statt dem + ein "und" dahin, aber es will trotzdem nicht klappen. Er zeigt mir an: 0 ungelesen, aber ich habe 11Stück, die ungelesen sind..

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