markus: Automatisch Mails von Yahoo-Mail runterladen

Hallo!
Ich moechte meine yahoo.com-mails automatisch runterladen.

Dazu habe ich mir die (mit einem Zufallscode in dem action-Feld des Formulars generierte) Einlogormularseite geladen, ausgefuellt und an die angegebene Adresse (mit eben diesem Zufallscode) geschickt (mit POST, wie es drinstand).
Ich habe die Anfrage per HTTP und LWP gemacht und im Header das Setzen eines Cookies bemerkt, was ich komischer in meiner Cookiedatei nicht bestaetigen konnte. Jetzt setzt Perl den Cookie "per Hand" nach dem Response-Header.

Das hat nicht geklappt. Es kam ein Dokument, in dem stand: "Document found! It has moved here!" oder so. Auf jeden Fall kam ich per Hyperlink wieder zur Einlogformularseite mit dem unterschied, dass ich jetzt nur noch das Passwort eingeben muss.

Hat Yahoo irgendwelche Tricks, die es verhindern, dieses Formular automatisch zu verschicken? Irgendwelche magischen zusatzcodes oder so?

Vielen Dank fuer die Hilfe :-)
Markus

PS: Die Anfrage fuer das Einlogdokument und fuer die POST-Anfrage funktionieren bei anderen Formularen ohne diesen Zufallscode usw.

  1. Hi,

    Ich moechte meine yahoo.com-mails automatisch runterladen.

    »»  ...

    technisch sehr interessant - endlich mal wieder eine anspruchsvolle Frage! :-)

    Das hat nicht geklappt. Es kam ein Dokument, in dem stand: "Document found! It has moved here!" oder so. Auf jeden Fall kam ich per Hyperlink wieder zur Einlogformularseite mit dem unterschied, dass ich jetzt nur noch das Passwort eingeben muss.
    Hat Yahoo irgendwelche Tricks, die es verhindern, dieses Formular automatisch zu verschicken? Irgendwelche magischen zusatzcodes oder so?

    Hm. Wenn ich Yahoo wäre und Dir einen solchen Cookie schicken würde, in dem die Bestädtigung für ein erfolgreiches Login steht, dann würde ich den Cookie so codieren, daß irgendwas drin steht, was seinen Entstehungszeitpunkt beschreibt - genau um zu verhindern, daß Du mit Deiner Methode, also dem immer wieder gleichen Cookie, Dich immer wieder einloggen kannst (implizites Verfallsdatum).  Und als Fehlerreaktion dann einen redirect, das käme mir plausibel vor ...

    Sollte ich hier richtig geraten haben, dann müßte Dein Skript den gesamten Login-Dialog abwickeln (mehrere LWP::Simple::get/post/???), den Cookie auffangen und ihn wieder zurückschicken. (Ist sein Inhalt denn jedesmal ein anderer?)

    mfG - Michael

    P.S.: Mußt Du für den "normalen" Zugriff auf Dein Yahoo-Fach (per Browser?) an irgendwelchen Seiten "vorbei", in denen Yahoo Werbung einblendet (und dafür Geld bekommt)? Wenn ja, dann hättest Du einen Grund für eine solche "Verteidigung" ...

    1. Hi,

      Ich moechte meine yahoo.com-mails automatisch runterladen.
      »»  ...

      technisch sehr interessant - endlich mal wieder eine anspruchsvolle Frage! :-)

      Das hat nicht geklappt. Es kam ein Dokument, in dem stand: "Document found! It has moved here!" oder so. Auf jeden Fall kam ich per Hyperlink wieder zur Einlogformularseite mit dem unterschied, dass ich jetzt nur noch das Passwort eingeben muss.
      Hat Yahoo irgendwelche Tricks, die es verhindern, dieses Formular automatisch zu verschicken? Irgendwelche magischen zusatzcodes oder so?

      Hm. Wenn ich Yahoo wäre und Dir einen solchen Cookie schicken würde, in dem die Bestädtigung für ein erfolgreiches Login steht, dann würde ich den Cookie so codieren, daß irgendwas drin steht, was seinen Entstehungszeitpunkt beschreibt - genau um zu verhindern, daß Du mit Deiner Methode, also dem immer wieder gleichen Cookie, Dich immer wieder einloggen kannst (implizites Verfallsdatum).  Und als Fehlerreaktion dann einen redirect, das käme mir plausibel vor ...

      Sollte ich hier richtig geraten haben, dann müßte Dein Skript den gesamten Login-Dialog abwickeln (mehrere LWP::Simple::get/post/???), den Cookie auffangen und ihn wieder zurückschicken. (Ist sein Inhalt denn jedesmal ein anderer?)

      mfG - Michael

      P.S.: Mußt Du für den "normalen" Zugriff auf Dein Yahoo-Fach (per Browser?) an irgendwelchen Seiten "vorbei", in denen Yahoo Werbung einblendet (und dafür Geld bekommt)? Wenn ja, dann hättest Du einen Grund für eine solche "Verteidigung" ...

      Besten Dank fuer die Antwort :-) !

      In meinem HTTP::Response-Header erscheint bei Set-Cookie:
      B=4eov1osslrkhp&b=2; expires=Thu, 15 Apr 2010 20:00:00 GMT; path=/; domain=.yahoo.com

      In der netscape-cookies datei steht, wenn ich ueber den netscape-Browser meine mails
      lese:
      .yahoo.com TRUE / FALSE 1271361600 B 5svq32kslrksc&b=2

      Der letzte String ist offensichtlich der Code, der bei HTTP durch B= ueber
      mittelt wird.
      Die Zahl 1271361600 wechselt sich unregelmaessig mit 1271361599 ab.

      Ich habe sowohl versucht, den Set-Cookie-Eintrag direkt in meine
      Cookiedatei zu schreiben (obwohl ich meine, dass dann die Formatierung
      nicht mehr so ganz stimmt) als auch nur den String nach B= zu aktuallisieren.
      Hat beides nicht geklappt.

      Wie wird so ein Cookie ueberhaupt formatiert? ich meine, in dem Response-Header
      steht ja was anderes als in meiner Cookie-Datei?

      Gruss Markus

      1. Hi,

        Wie wird so ein Cookie ueberhaupt formatiert? ich meine, in dem Response-Header
        steht ja was anderes als in meiner Cookie-Datei?

        Puh - bei HTTP bin ich nicht so fit, aber ich erinnere mich vage, mal gelesen zu haben, daß an dieser Stelle irgendwas Base64-codiert wird. Calocybe hat sicher den passenden RFC dafür zur Hand ...

        mfG - Michael