Announcement

Collapse
No announcement yet.

Format von Emails

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Format von Emails

    Hallo ich muß in einem Programm Emails auswerten. Der eigentl. Text ist kein Problem. Ein Dateianhang ist für mich nicht relevant. Ich habe lediglich Probleme mit dem Datei-Header, der vor dem eigentl. Text vorwegläuft. Wer hat eine Doku zum dem Header oder wer weiß wo man so etwas bekommen kann (Buch oder WWW Page). Speziel muß isch auswerten vom wem die Mail ursprünglich gekommen ist, da diese inzwischen aber x mal weitergeleitet worden sein kann... Wird der erste Absender in der Mail mitgeführt ?

    Danke Jörg

  • #2
    Die Antwort: <i>RFC 822</i> und <i>RFC 2822</i> (das Update). Diese Standards legen den Umgang mit Textnachrichten bis ins Detail fest (<i>RFC 822</i>: "Standard for the format of ARPA Internet text messages"). Unter [1] und [2] finden Sie ausführliche Informationen im Web.

    Fast alle Programmiersprachen stellen Funktionen für diese Aufgabe bereit (Perl, Java, Python etc.). Am Beispiel zweier Python-Programme, zur Einführung in die Thematik, soll aufgezeigt werden, dass die oben erwähnte Aufgabe leicht zu bewältigen ist.

    Falls Sie die Beispiele nachvollziehen möchten: auf Ihrer Maschine muss Python installiert sein. Mit <i>which python</i> kann man das in Erfahrung bringen.

    Wir verwenden hier das Modul <i>rfc822</i> und anschliessend das aktuelle Standardmodul <i>email</i>. Es wird empfohlen, stets das Letztere zu nutzen, welches seit Python 2.2 zur Verfügung steht.
    <PRE>
    #!/usr/bin/env python

    import rfc822

    if __name__ == '__main__':

    datei = 'mail_samp.txt'
    msg = rfc822.Message(open(datei))

    for k, v in msg.items():
    print k, "--->", v
    </PRE>
    Dieses kleine Programm gibt die Header einer Email auf der Konsole aus. Das nächste Programm ist etwas spezieller, es speichert den Received-Header in einer Liste und gibt dieselbe auf der Konsole aus. So kann man sich Stück für Stück vorarbeiten.
    <PRE>
    #!/usr/bin/env python

    import email

    if __name__ == '__main__':

    datei = 'mail_samp.txt'
    msg = email.message_from_file(open(datei))
    res = []
    for k in msg.keys():
    if k == 'Received':
    res.append(msg[k])
    print res
    </PRE>
    Das soll es gewesen sein. Viel Spass.

    Thomas Kaufmann

    Links

    [1] RFCs: http://www.faqs.org/rfcs/rfc822.html<br>
    [2] RFCs: http://www.faqs.org/rfcs/rfc2822.htm

    Comment

    Working...
    X