mail-merge: usability improvements
authorAlex Dehnert <adehnert@mit.edu>
Tue, 3 Sep 2013 02:09:58 +0000 (22:09 -0400)
committerAlex Dehnert <adehnert@mit.edu>
Tue, 3 Sep 2013 02:09:58 +0000 (22:09 -0400)
- open files in "universal newlines" mode
- give a better error when the "email" field is missing

mail-merge

index dd82cbbe9d300ce1e6e411d36ed626287f53dea6..5de621e0098b4dc3bd46862c56d265255b92d7b6 100755 (executable)
@@ -113,11 +113,14 @@ def msg_filter_factory(opts):
     return filter_rt
 
 def mail_merge(opts, cc_addr, email_file, recipients_file):
-    email_tmpl = open(email_file, 'r').read()
-    reader = csv.reader(open(recipients_file, 'r'))
+    email_tmpl = open(email_file, 'rU').read()
+    reader = csv.reader(open(recipients_file, 'rU'))
     header = reader.next()
     msg_filter = msg_filter_factory(opts)
     print header
+    if not 'email' in header:
+        print >>sys.stderr, "Your CSV file doesn't have an email field. You should fix that.\n(Note that this script is case-sensitive.)"
+        return False
     for line in reader:
         dct = dictize_line(header, line, )
         print dct