bei hotmail nur nachsehen ob eMails vorhanden

    • [ offen ]

      bei hotmail nur nachsehen ob eMails vorhanden

      hallo,
      mit _POP3connect kann ich auf verschiedene eMailserver zugreifen und nachschauen ob und wieviele eMails dort vorhanden sind (mittels _POP3Info und _ArrayDisplay). bei hotmail oder auch gmail geht das nicht. _INetSmtpMailCom ist nur vorgesehen, eMails zu senden. was soll ich also verwenden und wie ? danke.

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „supernova“ ()

      ja, genau, bei gmail fand ich die einstellung und habe sie aktiviert. bei hotmail fand ich bis jetzt nichts.

      eMail senden geht bei beiden problemlos mit _INetSmtpMailCom ganz konventionell.

      es ist mindestens der port, wo an stelle der 110 die 995 sein muss.

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

      im bild 11.. sieht man einen normalen ablauf mit port 110



      im bild 21.. sieht man einen hängenden ablauf mit port 995 (bleibt dort stehen oder Myshutdown)



      im bild 31.. sieht man wie im source der _POP3.au3 die funktionen TCPStartup, TCPNameToIP und TCPConnect irgendwie funktionieren. (zu TCPNameToIP: habe auch direkt mit verschiedenen IP-werten probiert, hätte ja sein können, dass die umsetzung von text in eine IP nicht richtig funktionieren würde, ist aber okay).

      die problemstelle ist wohl bei __POP3WaitForOK. diese nutzt die funktion __POP3WaitTcpResponse und diese widerum die funktion TCPRecv, welche bestandteil von autoit selber ist.



      im bild 41.. sieht man wie ich dort debugeinbauten vorgenommen habe um zu sehen, wie die antworten von TCPRecv sind. aber ausser hochzählen kommt da nichts.



      das erhöhen der paketgrösse von 512 auf 2048 brachte keine veränderung.

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

      würde nicht lange bohren, findest hier http://hpop.sourceforge.net ein nettes, neuestes util welches auch bestens mit hotmail, gmail oder was sonst noch kreucht und fleucht fertig wird. bei dieser OpenPop.dll ist auch ein ausführbares EXE womit du testen/vergleichen kannst. in zukunft sicher das beste.

      kannst mir mal die daten vom gmail senden. ich teste dann von hier aus. vielleicht liegt es auch nur an der falschen IP.
      habe mit deinen daten probiert und es funktioniert tatsächlich bestens mit OpenPop.dll, respektive die benutzung von deren beispielEXE. mehr detail kannst du nicht erwarten. bin am studieren der chm, aber die ist voll im bereich von "C" und mir völlig fremd. jedenfalls verwendet hotmail und gmail ganz normale routinen nur, in der _POP3.au3 ist das nicht eingebaut. wie sieht es mit dem hardcore von autoit aus ?
      oberstes ziel ist es, das eigentliche problem/aufgabenstellung zu lösen. im zweiten am liebsten mit "onboard-mitteln" von autoit. wenn das nicht erfolgreich, so "externe ware" anwenden. man müsste jemanden haben, der die integration von OpenPop.dll an die hand nimmt.

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

      habe mal ein testprgrämmli gemacht, so dass wir beim testen die gleiche basis haben. es stimmt, weder bei hotmail noch bei gmail kommt eine antwort, im gegensatz zu den allerwelts mailern. achtung, jeweilen den port noch anpassen. im debug-fenster unten im SciTE kann man den ganzen ablauf gut sehen/mitverfolgen.
      wie sind eure ergebnisse/vorschläge ?
      Spoiler anzeigen

      AutoIt-Quellcode

      1. ;;login_gmail.au3 äöü 12.04.02
      2. local $i
      3. local $oTCP
      4. local $cIP
      5. local $cAntwort=""
      6. ;;gmail
      7. $cIP="74.125.79.108" ;;74.125.79.108 74.125.79.109 supernova
      8. ;$cIP="74.125.43.108" ;;74.125.43.108 74.125.43.109
      9. ;;hotmail
      10. ;$cIP="207.46.46.181" ;;207.46.46.181 ?
      11. ;;einfach
      12. ;$cIP="213.133.103.20" ;;213.133.103.20 80.74.152.40
      13. ;;;;;
      14. ;;;;;quasi Main, läuft nur einmal durch
      15. ConsoleWrite($cIP & @CRLF)
      16. ;;Modul erst laden/starten
      17. TCPStartup()
      18. ;;verbinden
      19. $oTCP=TCPConnect($cIP,"995") ;;<================= 110 995
      20. ;;laufend abfragen
      21. For $i = 1 to 40 ;;40x bei 50m" = 2"
      22. $cAntwort=TCPRecv($oTCP,512)
      23. If $cAntwort=="" Then
      24. $cAntwort=f_PadL(4,"0",$i) & ":-"
      25. Else
      26. $cAntwort=f_PadL(4,"0",$i) & $cAntwort
      27. EndIf
      28. ;;anzeigen
      29. ConsoleWrite(StringStripWS($cAntwort,2) & @CRLF)
      30. Sleep(50)
      31. Next
      32. ;;Verbindung schliessen/abmelden
      33. TCPCloseSocket($oTCP)
      34. ;;Modul entladen
      35. TCPShutdown()
      36. ;;;;;
      37. ;;;;;
      38. Func f_PadL($pnLang,$pcFueller,$pcZuManip)
      39. While StringLen($pcZuManip)<$pnLang
      40. $pcZuManip=$pcFueller & $pcZuManip
      41. WEnd
      42. Return $pcZuManip
      43. EndFunc
      44. ;;ende

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „gango“ ()

      danke dir "gango" für das testmuster. bei mir sind wie gesagt die gleichen effekte festzustellen. warte jetzt noch auf die info von "wirr4all", weil er vermutlich (örtlich) auf einem anderen gmail-server einloggt.
      bin irgendwie doch etwas enttäuscht über die mageren resultate/teilnahmen/ideen der autoitler.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „supernova“ ()

      habe das konvertieren mal eingebaut plus ein paar annehmlichkeiten.
      Spoiler anzeigen

      AutoIt-Quellcode

      1. ;;login_gmail_2.au3 äöü 12.04.06
      2. local $i
      3. local $oTCP
      4. local $cIPname,$cIPzahl,$cIPport
      5. local $cAntwort=""
      6. local $aMailer[2]=["pop.gmail.com","995"] ;;google
      7. ;local $aMailer[2]=["pop3.live.com","995"] ;;hotmail
      8. ;local $aMailer[2]=["pop.bluewin.ch","110"]
      9. ;;so leichter verständlich
      10. $cIPname=$aMailer[0]
      11. $cIPport=$aMailer[1]
      12. ;;Modul erst laden/starten
      13. TCPStartup()
      14. ;;in IP konvertieren
      15. $cIPzahl=TCPNameToIP($cIPname)
      16. ConsoleWrite("|" & $cIPname & "|" & $cIPzahl & "|" & $cIPport & "|" & @CRLF)
      17. ;;verbinden
      18. $oTCP=TCPConnect($cIPzahl,$cIPport)
      19. ;;laufend (20x) abfragen
      20. For $i = 1 to 20 ;;20x bei 50m" = 1"
      21. $cAntwort=TCPRecv($oTCP,512)
      22. If $cAntwort=="" Then
      23. $cAntwort=f_PadL(4,"0",$i) & ":-"
      24. Else
      25. $cAntwort=f_PadL(4,"0",$i) & $cAntwort
      26. EndIf
      27. ;;anzeigen
      28. ConsoleWrite(StringStripWS($cAntwort,2) & @CRLF)
      29. Sleep(50)
      30. Next
      31. ;;Verbindung schliessen/abmelden
      32. TCPCloseSocket($oTCP)
      33. ;;Modul entladen
      34. TCPShutdown()
      35. ;;;;;
      36. ;;;;;
      37. Func f_PadL($pnLang,$pcFueller,$pcZuManip)
      38. While StringLen($pcZuManip)<$pnLang
      39. $pcZuManip=$pcFueller & $pcZuManip
      40. WEnd
      41. Return $pcZuManip
      42. EndFunc
      43. ;;ende
      ich denke, das TCPconnect müsste noch einen weiteren parameter senden oder sogar gleich senden, über welchen port man selbst senden wird. die 995 ist ja die vom mailer und nicht der port von uns sendenden.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „supernova“ ()

      die TCP-funktionen sind nicht in einer UDF im include-ordner. offenbar sind sie doch bestandteil vom autoit-hardcore. und trotzdem, autoit ruft sicher die entsprechenden originalen windows-prozeduren dazu auf (wie ja auch die OpenPop.dll)

      wer kennt die in der OpenPop.dll enthaltenen prozeduren (liste), sowie deren parameter ?
      habe zwischenzeitlich die lösung aus vielen quellen zusammen gekratzt und das ganze selber gebaut. für googlemail läuft auch alles schon störungsfrei, hingegen bei der immer überlasteten hotmail will es noch etwas mehr zeit um alle timeout's abzufangen. fragt man dort viele male und häufig hintereinander den account ab, blockiert hotmail sogar den zugang für 15minuten mit der meldung -ERR Exceeded the login limit for a 15 minute period. Reduce the frequency of requests to the POP3 server. das nervt einem also schon beim testen.

      die lösung geht grundsätzlich jetzt via die OpenSSL-Win32 (davon werden aber nur einige dateien benötigt). es ist noch zu früh um den source zu zeigen. ich melde mich wieder in kürze.
      es braucht die dateien openssl.exe, libeay32.dll, ssleay32.dll welche unten in der OpenSSL_dateien.zip sind.

      persönlich bin ich mit meiner lösung ganz und gar nicht zufrieden. mit der abgemagerten version, welche ich in kürze hochhieve sind immer noch 500 programmzeilen und für einen zuverlässigen transfer mit hotmail brauche ich sehr lange SLEEP-zeiten. mit gmail/google geht es aber bestens. das hat nichts mit SSL/verschlüsselung zu tun, hotmail agiert einfach chaotisch.
      Dateien
    autoit.de Webutation