10 sender_header = 'mail-merge-sender@mit.edu'
13 def dictize_line(header, line,):
15 for key, elem in zip(header, line, ):
19 def setup_sendmail_smtp():
23 def sendmail_smtp(addrs, text):
25 smtp.sendmail(sender_header, addrs, text, )
26 smtp_funcs = (setup_sendmail_smtp, sendmail_smtp, )
28 def sendmail_cmd(addrs, text):
29 args = ["/usr/lib/sendmail", "--", ]
31 proc = subprocess.Popen(args, stdin=subprocess.PIPE)
32 proc.communicate(text)
33 cmd_funcs = (lambda: True, sendmail_cmd)
35 setup_sendmail, sendmail = smtp_funcs
36 setup_sendmail, sendmail = cmd_funcs
38 def mail_merge(cc_addr, email_file, recipients_file):
39 email = open(email_file, 'r').read()
40 reader = csv.reader(open(recipients_file, 'r'))
41 header = reader.next()
44 dct = dictize_line(header, line, )
47 sendmail([dct['email'], cc_addr, ], text, )
49 if __name__=='__main__':
50 print "Syntax: $script $cc_addr $template $recipients"
53 email_file = sys.argv[2]
54 recipients_file = sys.argv[3]
55 mail_merge(cc_addr, email_file, recipients_file, )