Make mail-merge slightly more generic
[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
10 def dictize_line(header, line,):
11     line_dict = {}
12     for key, elem in zip(header, line, ):
13         line_dict[key]=elem
14     return line_dict
15
16 if __name__=='__main__':
17     print "Syntax: $script $cc_addr $template $recipients"
18     smtp = smtplib.SMTP()
19     smtp.connect()
20     cc_addr = sys.argv[1]
21     email_file = sys.argv[2]
22     email = open(email_file, 'r').read()
23     reader = csv.reader(open(sys.argv[3]))
24     header = reader.next()
25     print header
26     for line in reader:
27         dct = dictize_line(header, line, )
28         print dct
29         text = email % dct
30         smtp.sendmail(sender_header, [dct['email'], cc_addr, ], text, )