forked from cpp-netlib/cpp-netlib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmimeParse.py
executable file
·52 lines (44 loc) · 1.13 KB
/
mimeParse.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/python
#
# A python program to compare against the output from "mime-structure" tool.
#
# Usage: python mimeParse.py <file list>
#
import sys
import email
def parseOne ( msg, title, prefix ):
# if prefix != "":
# print msg
if title != None:
print "%sData from: %s" % ( prefix, title )
print "%sContent-Type: %s" % ( prefix, msg.get_content_type ())
print "%sThere are %d headers" % ( prefix, msg.__len__ ())
payload = msg.get_payload ();
if msg.is_multipart ():
print "%sThere are %s sub parts" % ( prefix, len ( payload ))
for p in payload:
parseOne ( p, None, prefix + " " )
else:
bodyLen = 0
aBody = ""
for p in payload:
bodyLen += len (p)
aBody += p
print "%sThe body is %d bytes long" % ( prefix, bodyLen )
print prefix,
if bodyLen < 10:
for c in aBody:
print ord(c),
else:
for i in range(0,5):
print ord (aBody[i]),
print "... ",
for i in range(1,6):
print ord (aBody[-i]),
print ''
# _structure ( msg )
def main():
for a in sys.argv[1:]:
print "**********************************"
parseOne ( email.message_from_file ( open ( a )), a, "" )
main ()