mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import mimetools
 | 
						|
import multifile
 | 
						|
import cStringIO
 | 
						|
 | 
						|
msg = """Mime-Version: 1.0
 | 
						|
Content-Type: multipart/mixed;
 | 
						|
        boundary="=====================_590453667==_"
 | 
						|
X-OriginalArrivalTime: 05 Feb 2002 03:43:23.0310 (UTC) FILETIME=[42D88CE0:01C1ADF7]
 | 
						|
 | 
						|
--=====================_590453667==_
 | 
						|
Content-Type: multipart/alternative;
 | 
						|
        boundary="=====================_590453677==_.ALT"
 | 
						|
 | 
						|
--=====================_590453677==_.ALT
 | 
						|
Content-Type: text/plain; charset="us-ascii"; format=flowed
 | 
						|
 | 
						|
test A
 | 
						|
--=====================_590453677==_.ALT
 | 
						|
Content-Type: text/html; charset="us-ascii"
 | 
						|
 | 
						|
<html>
 | 
						|
<b>test B</font></b></html>
 | 
						|
 | 
						|
--=====================_590453677==_.ALT--
 | 
						|
 | 
						|
--=====================_590453667==_
 | 
						|
Content-Type: text/plain; charset="us-ascii"
 | 
						|
Content-Disposition: attachment; filename="att.txt"
 | 
						|
 | 
						|
Attached Content.
 | 
						|
Attached Content.
 | 
						|
Attached Content.
 | 
						|
Attached Content.
 | 
						|
 | 
						|
--=====================_590453667==_--
 | 
						|
 | 
						|
"""
 | 
						|
 | 
						|
def getMIMEMsg(mf):
 | 
						|
    global boundaries, linecount
 | 
						|
    msg = mimetools.Message(mf)
 | 
						|
 | 
						|
    #print "TYPE: %s" % msg.gettype()
 | 
						|
    if msg.getmaintype() == 'multipart':
 | 
						|
        boundary = msg.getparam("boundary")
 | 
						|
        boundaries += 1
 | 
						|
 | 
						|
        mf.push(boundary)
 | 
						|
        while mf.next():
 | 
						|
            getMIMEMsg(mf)
 | 
						|
        mf.pop()
 | 
						|
    else:
 | 
						|
        lines = mf.readlines()
 | 
						|
        linecount += len(lines)
 | 
						|
 | 
						|
def test_main():
 | 
						|
    global boundaries, linecount
 | 
						|
    boundaries = 0
 | 
						|
    linecount = 0
 | 
						|
    f = cStringIO.StringIO(msg)
 | 
						|
    getMIMEMsg(multifile.MultiFile(f))
 | 
						|
    assert boundaries == 2
 | 
						|
    assert linecount == 9
 | 
						|
 | 
						|
if __name__ == '__main__':
 | 
						|
    test_main()
 |