| 
									
										
										
										
											2002-09-22 09:01:08 +00:00
										 |  |  | import mimetools | 
					
						
							|  |  |  | import multifile | 
					
						
							|  |  |  | import cStringIO | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | msg = """Mime-Version: 1.0
 | 
					
						
							|  |  |  | Content-Type: multipart/mixed; | 
					
						
							| 
									
										
										
										
											2002-09-29 00:25:51 +00:00
										 |  |  |         boundary="=====================_590453667==_" | 
					
						
							| 
									
										
										
										
											2002-09-22 09:01:08 +00:00
										 |  |  | X-OriginalArrivalTime: 05 Feb 2002 03:43:23.0310 (UTC) FILETIME=[42D88CE0:01C1ADF7] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --=====================_590453667==_ | 
					
						
							|  |  |  | Content-Type: multipart/alternative; | 
					
						
							| 
									
										
										
										
											2002-09-29 00:25:51 +00:00
										 |  |  |         boundary="=====================_590453677==_.ALT" | 
					
						
							| 
									
										
										
										
											2002-09-22 09:01:08 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | --=====================_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) | 
					
						
							| 
									
										
										
										
											2002-09-29 00:25:51 +00:00
										 |  |  |         while mf.next(): | 
					
						
							|  |  |  |             getMIMEMsg(mf) | 
					
						
							| 
									
										
										
										
											2002-09-22 09:01:08 +00:00
										 |  |  |         mf.pop() | 
					
						
							|  |  |  |     else: | 
					
						
							|  |  |  |         lines = mf.readlines() | 
					
						
							|  |  |  |         linecount += len(lines) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-17 14:51:41 +00:00
										 |  |  | def test_main(): | 
					
						
							| 
									
										
										
										
											2004-08-03 11:14:09 +00:00
										 |  |  |     global boundaries, linecount | 
					
						
							|  |  |  |     boundaries = 0 | 
					
						
							|  |  |  |     linecount = 0 | 
					
						
							| 
									
										
										
										
											2002-09-22 09:01:08 +00:00
										 |  |  |     f = cStringIO.StringIO(msg) | 
					
						
							|  |  |  |     getMIMEMsg(multifile.MultiFile(f)) | 
					
						
							|  |  |  |     assert boundaries == 2 | 
					
						
							|  |  |  |     assert linecount == 9 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if __name__ == '__main__': | 
					
						
							| 
									
										
										
										
											2003-02-17 14:51:41 +00:00
										 |  |  |     test_main() |