Python email.message_from_string () parse Probleme

Mein Setup nutzt fetchmail, um E-Mails aus Gmail zu ziehen, die von procmail verarbeitet werden und es an ein Python-Skript übergibt.

Wenn ich email.message_from_string() , wird das resultierende Objekt nicht als E-Mail-Objekt analysiert. get_payload() gibt den Header / body / payload Text der E-Mail als Einzeltext-Blob zurück.

  • Konfigurieren Sie Flask-Mail für die Verwendung von GMail
  • HTML-E-Mail in App Engine / Python senden?
  • Ist es möglich, Header zu E-Mails hinzuzufügen, die von App-Engine gesendet werden?
  • Empfangen von Mail in Google App Engine
  • Wie kann man den Absender der eingehenden E-Mail-Adresse in der Google App Engine überprüfen?
  • Senden von E-Mails aus meiner Domain vs aus dem Admin-Google-Konto?
  • Dies ist der Text, den es zurückgibt:

     From example@gmail.com Sat Aug 17 19:20:44 2013 >From example Sat Aug 17 19:20:44 2013 MIME-Version: 1.0 Received: from ie-in-f109.1e100.net [74.125.142.109] by VirtualBox with IMAP (fetchmail-6.3.21) for <example@localhost> (single-drop); Sat, 17 Aug 2013 19:20:44 -0700 (PDT) Received: by 10.70.131.110 with HTTP; Sat, 17 Aug 2013 19:20:42 -0700 (PDT) Date: Sat, 17 Aug 2013 19:20:42 -0700 Delivered-To: example@gmail.com Message-ID: <CAAsp4m0GBeVg80-ryFgNvNNAj_QPguzbX3DqvMSx-xSGZM18Pw@mail.gmail.com> Subject: test 19:20 From: example <example@gmail.com> To: example <example@gmail.com> Content-Type: multipart/alternative; boundary=001a1133435474449004e42f7861 --001a1133435474449004e42f7861 Content-Type: text/plain; charset=ISO-8859-1 19:20 --001a1133435474449004e42f7861 Content-Type: text/html; charset=ISO-8859-1 <div dir="ltr">19:20</div> --001a1133435474449004e42f7861-- 

    Mein Code:

     full_msg = sys.stdin.read() msg = email.message_from_string(full_msg) msg['to'] # returns None msg.get_payload() # returns the text above 

    Was fehlt mir, um Python zu bekommen, um die E-Mail richtig zu interpretieren?

    Ich sehe aus diesen Fragen, dass ich vielleicht nicht die richtigen E-Mail-Header irgendwo entlang der Linie, aber ich kann nicht bestätigen. Das ">" auf Zeile 2 ist kein Tippfehler: es ist im Text.

  • Laufberechnung im Hintergrundfaden python / pygtk
  • Warum Python ist nicht besser in Multiprocessing oder Multithreading-Anwendungen als Java?
  • Eine Frage auf Python GIL
  • Was ist eine globale Interpreter-Sperre (GIL)?
  • Parallele Dateivergleichung, Python
  • Python Global Interpreter Lock (GIL) Workaround auf Multi-Core-Systemen mit tasket auf Linux?
  • One Solution collect form web for “Python email.message_from_string () parse Probleme”

    Unabhängig von ">" Sein "im Text", wie Sie sagen, was auch immer das bedeutet – es ist falsch Nach dem Entfernen dieses Zeichens:

    >python test.py <input.txt
    example <example@gmail.com>
    [<email.message.Message instance at 0x02810288>, <email.message.Message instance at 0x02810058>]

    Also der Fehler ist nicht in der Parsing der Nachricht, sondern in der ">" Charakter irgendwie korrumpiert Ihre E-Mail-Text.

    Python ist die beste Programmiersprache der Welt.