Make it actually work
This commit is contained in:
parent
14e1a9a3fc
commit
b3ba3fb0a9
1 changed files with 13 additions and 9 deletions
22
bin/mail-instructions.py
Normal file → Executable file
22
bin/mail-instructions.py
Normal file → Executable file
|
@ -31,23 +31,26 @@
|
||||||
|
|
||||||
import smtplib
|
import smtplib
|
||||||
import sys
|
import sys
|
||||||
|
import string
|
||||||
|
import re
|
||||||
from email.mime.text import MIMEText
|
from email.mime.text import MIMEText
|
||||||
|
|
||||||
re_template_fixes = [
|
re_template_fixes = [
|
||||||
(re.compile(r'^(\s*Dear )<member>'), '\1 $member'),
|
(re.compile(r'^(\s*Dear )<member>', re.MULTILINE), '\\1$member'),
|
||||||
(re.compile(r'^(\s*E-mail:)'), '\1 $email'),
|
(re.compile(r'^(\s*E-mail:)', re.MULTILINE), '\\1 $email'),
|
||||||
(re.compile(r'^(\s*Vote token:)'), '\1 $token')
|
(re.compile(r'^(\s*Vote token:)', re.MULTILINE), '\\1 $token')
|
||||||
]
|
]
|
||||||
|
|
||||||
sub email_it(recipients_file, instructions_file):
|
def email_it(recipients_file, instructions_file):
|
||||||
instructions = file(instructions_file, "r").read().splitlines()
|
instructions = file(instructions_file, "r").read().splitlines()
|
||||||
|
|
||||||
from_header = instructions.pop(0)
|
from_header = instructions.pop(0)
|
||||||
subject_header = instructions.pop(0)
|
subject_header = instructions.pop(0)
|
||||||
|
|
||||||
template = string.Template("\n".join(instructions))
|
instructions = "\n".join(instructions)
|
||||||
for re_fix in re_template_fixes:
|
for re_fix in re_template_fixes:
|
||||||
template = re_fix[0].sub(re_fix[1], template)
|
instructions = re_fix[0].sub(re_fix[1], instructions)
|
||||||
|
template = string.Template(instructions)
|
||||||
|
|
||||||
f = file(recipients_file, "r")
|
f = file(recipients_file, "r")
|
||||||
|
|
||||||
|
@ -57,11 +60,11 @@ sub email_it(recipients_file, instructions_file):
|
||||||
|
|
||||||
for line in f:
|
for line in f:
|
||||||
l = line.strip()
|
l = line.strip()
|
||||||
if l.beginswith("#") or l = "":
|
if l.startswith("#") or l == "":
|
||||||
continue
|
continue
|
||||||
|
|
||||||
l = l.split(";", 2)
|
l = l.split(";", 2)
|
||||||
if len(l) <> 2:
|
if len(l) <> 3:
|
||||||
print "ERROR in recipients file, invalid line:"
|
print "ERROR in recipients file, invalid line:"
|
||||||
print line,
|
print line,
|
||||||
continue
|
continue
|
||||||
|
@ -75,6 +78,7 @@ sub email_it(recipients_file, instructions_file):
|
||||||
|
|
||||||
if s is None:
|
if s is None:
|
||||||
s = smtplib.SMTP()
|
s = smtplib.SMTP()
|
||||||
|
s.connect('localhost')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
s.sendmail(from_header, ['olav@bkor.dhs.org'], msg.as_string())
|
s.sendmail(from_header, ['olav@bkor.dhs.org'], msg.as_string())
|
||||||
|
@ -93,7 +97,7 @@ sub email_it(recipients_file, instructions_file):
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
if len(sys.argv) != 2:
|
if len(sys.argv) != 3:
|
||||||
print "Usage: mail-instructions.py <recipient list> <instructions template>"
|
print "Usage: mail-instructions.py <recipient list> <instructions template>"
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue