Refactor out the actual mail-sending
[user/alex/software/my-snippets.git] / mail-merge
1 #!/usr/bin/python
2
3 import sys
4 import os
5 import csv
6 import smtplib
7
8 sender_header = 'mail-merge-sender@mit.edu'
9 smtp = None
10
11 def dictize_line(header, line,):
12     line_dict = {}
13     for key, elem in zip(header, line, ):
14         line_dict[key]=elem
15     return line_dict
16
17 def setup_sendmail():
18     global smtp
19     smtp = smtplib.SMTP()
20     smtp.connect()
21
22 def sendmail(addrs, text):
23     global smtp
24     smtp.sendmail(sender_header, addrs, text, )
25
26 if __name__=='__main__':
27     print "Syntax: $script $cc_addr $template $recipients"
28     setup_sendmail()
29     cc_addr = sys.argv[1]
30     email_file = sys.argv[2]
31     email = open(email_file, 'r').read()
32     reader = csv.reader(open(sys.argv[3]))
33     header = reader.next()
34     print header
35     for line in reader:
36         dct = dictize_line(header, line, )
37         print dct
38         text = email % dct
39         sendmail([dct['email'], cc_addr, ], text, )