automatisch aus E Mail den Anhang in Ordner speichern

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    automatisch aus E Mail den Anhang in Ordner speichern

    Hallo zusammen,

    ich bin auf der Suche nach ein Programm das automatisch den Anhang einer E-Mail in einen Ordner speichert. Der Bezug welche E Mail behandelt werden soll würde ich gerne an der E Mail Adresse fest machen, alternativ könnte auch der Betreff genommen werden. Ich habe im Vorfeld natürlich die Forum Suche und Google benutzt und habe leider nur halb automatische wie zB. AttachmentExtractor etc. gefunden, bei denen muss das E-Mail Programm geöffnet sein und noch die Mail ausgewählt werden.
    Habt jemand einen Tipp?
    Gruß
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(
    Musst halt den Empfang selbst programmieren, dann kannste auch die Anhänge automatisch verarbeiten. Also ohne z.B. Outlook dazwischen.

    Bei der Interaktion mit Outlook kann ich behilflich sein. Beim direkten Empfang nicht. Aber dazu gibt es hier sicher etliche Threads.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hm, ja doof... und nu?

    Haste schon was programmiert? Zeig mal was de hast und wo du nicht weiter kommst.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hierbei wird leider der Anhang nicht abgerufen

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports EAGetMail
    3. Module Module1
    4. Sub Main()
    5. Dim curpath As String = Directory.GetCurrentDirectory()
    6. Dim mailbox As String = [String].Format("{0}\inbox", curpath)
    7. If Not Directory.Exists(mailbox) Then
    8. Directory.CreateDirectory(mailbox)
    9. End If
    10. Dim oServer As New MailServer("pop.gmail.com", _
    11. "test@googlemail.com", "testpassword",ServerProtocol.Pop3)
    12. Dim oClient As New MailClient("TryIt")
    13. Try
    14. oClient.Connect(oServer)
    15. Dim infos As MailInfo() = oClient.GetMailInfos()
    16. For i As Integer = 0 To infos.Length - 1
    17. Dim info As MailInfo = infos(i)
    18. Console.WriteLine("Index: {0}; Size: {1}; UIDL: {2}", _
    19. info.Index, info.Size, info.UIDL)
    20. Dim oMail As Mail = oClient.GetMail(info)
    21. Console.WriteLine("From: {0}", oMail.From.ToString())
    22. Console.WriteLine("Subject: {0}" & vbCr & vbLf, oMail.Subject)
    23. Dim d As System.DateTime = System.DateTime.Now
    24. Dim cur As New System.Globalization.CultureInfo("en-US")
    25. Dim sdate As String = d.ToString("yyyyMMddHHmmss", cur)
    26. Dim fileName As String = [String].Format("{0}\{1}{2}{3}.eml", _
    27. mailbox, sdate, d.Millisecond.ToString("d3"), i)
    28. oMail.SaveAs(fileName, True)
    29. oClient.Delete(info)
    30. Next
    31. oClient.Quit()
    32. Catch ep As Exception
    33. Console.WriteLine(ep.Message)
    34. End Try
    35. End Sub
    36. End Module



    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(
    Du nutzt eine Fremdkomponente "EAGetMail". Hast du, bevor du munter copy&paste gemacht hast, oder auch danach, wenigstens die Dokumentation dazu angeschaut?

    -> emailarchitect.net/eagetmail/sdk/

    Ich hab so den Eindruck, du möchtest gerne fertigen Code zum Kopieren, kann das sein?
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    mrMo schrieb:

    Du nutzt eine Fremdkomponente "EAGetMail". Hast du, bevor du munter copy&paste gemacht hast, oder auch danach, wenigstens die Dokumentation dazu angeschaut?

    habe ich, mir ist klar das das nicht zu googlemail passt:

    VB.NET-Quellcode

    1. Imports EAGetMail

    Sorry, aber ich glaube nicht, dass das der Grund ist warum die Anhänge nicht mit angezeigt wird. Hätte ich es so gelassen dann hätte es gar nicht geklappt.

    mrMo schrieb:

    Ich hab so den Eindruck, du möchtest gerne fertigen Code zum Kopieren, kann das sein?

    Das wäre natürlich schön, bringt mich aber nicht weiter. Es sei denn es würde mir erklärt werden :-). Es gibt nämlich hier in diesen Forum User die ein eventuelles fertige Projekt verständlich erklären.


    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(

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

    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    ich versuche mich gerade hier dran

    VB.NET-Quellcode

    1. Dim pop3 As New POPClient
    2. pop3.Disconnect()
    3. pop3.Connect("imap.gmail.com", 995, useSsl:=True)
    4. pop3.Authenticate("test@gmail.com", "Passwort")
    5. ListBox1.Items.Clear()
    6. For i As Integer = 1 To pop3.GetMessageCount
    7. Dim m As MIMEParser.Message = pop3.GetMessage(i, False)
    8. My.Application.DoEvents()
    9. ListBox1.Items.Add("From: " & m.From & " <" & m.FromEmail & "> - " & m.Subject)
    10. If m.MessageBody.Count > 0 Then
    11. Dim Attach As New List(Of MIMEParser.Attachment)
    12. Messages.Add(m.MessageBody(m.MessageBody.Count - 1))
    13. For ii As Integer = 1 To m.AttachmentCount - 1
    14. Attach.Add(m.GetAttachment(ii))
    15. Next
    16. AttachArray.Add(Attach)
    17. End If
    18. Next
    19. pop3.Disconnect()

    im welchen Verzeichniss packe ich die OpenPoP.dll und die MIMEParser.dll, kommen die ins Debug?
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(

    Zakath schrieb:

    Moin,

    das kann so nix werden... Du verwendest POP 3 und greifst damit auf die IMAP Domain von Google zu. Google unterstützt übrigens meines Wissens nach nur IMAP, also wirst du da mit POP3 nicht weit kommen

    Du hast recht, ich hätte

    VB.NET-Quellcode

    1. ​pop3.Connect("pop.gmail.com", 995, useSsl:=True)
    schreiben müssen. In meinen Versuchen habe ich pop.gmail.com stehen gehabt mit den Port 995, bei imap ist es Port 993. Trotzdem Danke für den Hinweis, das hätte ja ein Fehler sein können.

    Zur Info, Google unterstützt pop3
    POP3:
    Posteingangsserver: pop.gmail.com
    Port: 995
    SSL erforderlich: Ja
    ich bin ein Anfänger, bitte habt Verständnis für meine Unwissenheit und eventuelle schlecht gestellte Fragen ?(