]> git.phdru.name Git - mimedecode.git/commitdiff
Split decode_message into decode_multipart
authorOleg Broytman <phd@phdru.name>
Wed, 12 Feb 2014 00:17:15 +0000 (04:17 +0400)
committerOleg Broytman <phd@phdru.name>
Wed, 12 Feb 2014 00:17:15 +0000 (04:17 +0400)
mimedecode.py
test/expected/msg_43.txt

index 9db427893301d1455214134f1d6cbddde0d6738a..d3d23ff2595418c7cc68557d63d822802caf865e 100755 (executable)
@@ -231,8 +231,8 @@ def decode_part(msg):
     totext(msg, outstring)
 
 
-def decode_message(msg):
-    "Decode message"
+def decode_multipart(msg):
+    "Decode multipart"
 
     if msg.is_multipart():
         decode_headers(msg)
@@ -247,10 +247,8 @@ def decode_message(msg):
             if boundary:
                 output("\n--%s\n" % boundary)
 
-            if subpart.is_multipart(): # Recursively decode all parts of the subpart
-                decode_message(subpart)
-            else:
-                decode_part(subpart)
+            # Recursively decode all parts of the subpart
+            decode_message(subpart)
 
         if boundary:
             output("\n--%s--\n" % boundary)
@@ -258,9 +256,13 @@ def decode_message(msg):
         if msg.epilogue:
             output(msg.epilogue)
 
+def decode_message(msg):
+    "Decode message"
+
+    if msg.is_multipart():
+        decode_multipart(msg)
     elif msg.has_key("Content-Type"): # Simple one-part message - decode it
         decode_part(msg)
-
     else: # Not a message, just text - copy it literally
         output(msg.as_string())
 
index 33aaca161b72e119d48759942d1b17b3731b0946..8386fd4a76295860ba1d612c23f7d3569690ecba 100644 (file)
@@ -45,151 +45,201 @@ Arrival-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 Final-Recipient: rfc822; xxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)
 
 Final-Recipient: rfc822; xxxxxxx@dot.ca.gov
 Action: failed
 Status: 5.7.1
-Diagnostic-Code: smtp; 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED: auto__mail.python.bat
+Diagnostic-Code: smtp;
+ 550 5.7.1 Message content rejected, id=01956-02-2 - BANNED:
+ auto__mail.python.bat
 Last-Attempt-Date: Fri, 26 Nov 2004 19:41:44 -0800 (PST)