Don't kill EoC when MIME header encodings are broken. New release.
[eoc.git] / eoc.py
diff --git a/eoc.py b/eoc.py
index 124cac2f5bb06f10aaa23c50bf1d50d3d3f66a8c..ecb8dafccf99baa56699610ba0c5db5009a3cd7a 100644 (file)
--- a/eoc.py
+++ b/eoc.py
@@ -4,7 +4,7 @@ This is a simple mailing list manager that mimicks the ezmlm-idx mail
 address commands. See manual page for more information.
 """
 
-VERSION = "1.2.1"
+VERSION = "1.2.3"
 PLUGIN_INTERFACE_VERSION = "1"
 
 import getopt
@@ -419,8 +419,8 @@ class MailingListManager:
                              "w")
                 f.write(text)
                 status = f.close()
-                if status != 0:
-                    error("%s returned %d, mail sending probably failed" %
+                if status:
+                    error("%s returned %s, mail sending probably failed" %
                            (self.sendmail, status))
                     sys.exit((status >> 8) & 0xff)
         else:
@@ -475,6 +475,8 @@ class MailingList:
 
     def read_stdin(self):
         data = sys.stdin.read()
+        # Convert CRLF to plain LF
+        data = "\n".join(data.split("\r\n"))
         # Skip Unix mbox "From " mail start indicator
         if data[:5] == "From ":
             data = string.split(data, "\n", 1)[1]
@@ -527,7 +529,7 @@ class MailingList:
         
             return "\n".join(headers) + "\n\n" + body
         except:
-            error("Cannot MIME encode header, using original ones, sorry")
+            warning("Cannot MIME encode header, using original ones, sorry")
             return text
 
     def template(self, template_name, dict):
@@ -904,6 +906,10 @@ class MailingList:
         return text + self.template("footer", {})
 
     def send_mail_to_subscribers(self, text):
+        text = self.remove_some_headers(text, ["list-id", "list-help",
+                                               "list-unsubscribe",
+                                               "list-subscribe", "list-post",
+                                               "list-owner", "precedence"])
         text = self.headers_to_add() + self.list_headers() + \
                self.headers_to_remove(text)
         text = self.append_footer(text)