projects
/
eoc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
New version.
[eoc.git]
/
eoc.py
diff --git
a/eoc.py
b/eoc.py
index 52621bc3b4c73e91c84c66ba88fb8de0d71422ca..8345a411fc8c00030d3b9074b53feb3f267a732f 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.
"""
address commands. See manual page for more information.
"""
-VERSION = "1.2.
1
"
+VERSION = "1.2.
2
"
PLUGIN_INTERFACE_VERSION = "1"
import getopt
PLUGIN_INTERFACE_VERSION = "1"
import getopt
@@
-395,13
+395,21
@@
class MailingListManager:
"\n ".join(text[:text.find("\n\n")].split("\n"))))
if recipients:
if self.smtp_server:
"\n ".join(text[:text.find("\n\n")].split("\n"))))
if recipients:
if self.smtp_server:
- smtp = smtplib.SMTP(self.smtp_server)
- smtp.sendmail(envelope_sender, recipients, text)
- smtp.quit()
+ try:
+ smtp = smtplib.SMTP(self.smtp_server)
+ smtp.sendmail(envelope_sender, recipients, text)
+ smtp.quit()
+ except:
+ error("Error sending SMTP mail, mail probably not sent")
+ sys.exit(1)
elif self.qmqp_server:
elif self.qmqp_server:
- q = qmqp.QMQP(self.qmqp_server)
- q.sendmail(envelope_sender, recipients, text)
- q.quit()
+ try:
+ q = qmqp.QMQP(self.qmqp_server)
+ q.sendmail(envelope_sender, recipients, text)
+ q.quit()
+ except:
+ error("Error sending QMQP mail, mail probably not sent")
+ sys.exit(1)
else:
recipients = string.join(recipients, " ")
f = os.popen("%s -oi -f '%s' %s" %
else:
recipients = string.join(recipients, " ")
f = os.popen("%s -oi -f '%s' %s" %
@@
-410,7
+418,11
@@
class MailingListManager:
recipients),
"w")
f.write(text)
recipients),
"w")
f.write(text)
- f.close()
+ status = f.close()
+ if status:
+ error("%s returned %s, mail sending probably failed" %
+ (self.sendmail, status))
+ sys.exit((status >> 8) & 0xff)
else:
debug("send_mail: no recipients, not sending")
else:
debug("send_mail: no recipients, not sending")
@@
-463,6
+475,8
@@
class MailingList:
def read_stdin(self):
data = sys.stdin.read()
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]
# Skip Unix mbox "From " mail start indicator
if data[:5] == "From ":
data = string.split(data, "\n", 1)[1]
@@
-892,6
+906,10
@@
class MailingList:
return text + self.template("footer", {})
def send_mail_to_subscribers(self, text):
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)
text = self.headers_to_add() + self.list_headers() + \
self.headers_to_remove(text)
text = self.append_footer(text)