Add sendmail-based mail merger
authorAlex Dehnert <adehnert@mit.edu>
Fri, 16 Sep 2011 00:08:45 +0000 (20:08 -0400)
committerAlex Dehnert <adehnert@mit.edu>
Fri, 16 Sep 2011 00:08:45 +0000 (20:08 -0400)
mail-merge

index dbf39e095ac1c63d1deac1bbd0a6b1d8d40cc892..f03baeac63b36e70c367cf653287ff7c0bd8460d 100755 (executable)
@@ -4,6 +4,7 @@ import sys
 import os
 import csv
 import smtplib
+import subprocess
 
 sender_header = 'mail-merge-sender@mit.edu'
 smtp = None
@@ -14,14 +15,24 @@ def dictize_line(header, line,):
         line_dict[key]=elem
     return line_dict
 
-def setup_sendmail():
+def setup_sendmail_smtp():
     global smtp
     smtp = smtplib.SMTP()
     smtp.connect()
-
-def sendmail(addrs, text):
+def sendmail_smtp(addrs, text):
     global smtp
     smtp.sendmail(sender_header, addrs, text, )
+smtp_funcs = (setup_sendmail_smtp, sendmail_smtp, )
+
+def sendmail_cmd(addrs, text):
+    args = ["/usr/lib/sendmail", "--", ]
+    args.extend(addrs)
+    proc = subprocess.Popen(args, stdin=subprocess.PIPE)
+    proc.communicate(text)
+cmd_funcs = (lambda: True, sendmail_cmd)
+
+setup_sendmail, sendmail = smtp_funcs
+setup_sendmail, sendmail = cmd_funcs
 
 if __name__=='__main__':
     print "Syntax: $script $cc_addr $template $recipients"