X-Git-Url: https://git.tld-linux.org/?p=tld-builder.git;a=blobdiff_plain;f=TLD_Builder%2Fmailer.py;h=a43eb9e7347982560f8fdf2249d69ac43dfdc2bf;hp=f1459faf5c50f4e3cf377deda135e9e08d9d8f85;hb=527741da2b53b398a5913f12333805c5b72a6e94;hpb=b999f53d4bf5d44586ecf028876e8bc20b5fd2ce diff --git a/TLD_Builder/mailer.py b/TLD_Builder/mailer.py index f1459fa..a43eb9e 100644 --- a/TLD_Builder/mailer.py +++ b/TLD_Builder/mailer.py @@ -3,22 +3,16 @@ import time import os import sys -import StringIO - +from io import StringIO from config import config -import util +import shutil import log - -def recode(s): - if s.__class__ == ''.__class__: - return s.decode('iso-8859-1', 'replace').encode('us-ascii', 'replace') - else: - return s.encode('us-ascii', 'replace') +import util class Message: def __init__(self): self.headers = {} - self.body = StringIO.StringIO() + self.body = StringIO() self.set_std_headers() def set_header(self, n, v): @@ -37,10 +31,10 @@ class Message: del self.headers[n] def write_line(self, l): - self.body.write(recode("%s\n" % l)) + self.body.write(util.to_str("%s\n" % l)) def write(self, s): - self.body.write(recode(s)) + self.body.write(util.to_str(s)) def append_log(self, log): s = os.stat(log) @@ -48,18 +42,18 @@ class Message: # just head and tail f = open(log) line_cnt = 0 - for l in f.xreadlines(): + for l in f: line_cnt += 1 f.seek(0) line = 0 - for l in f.xreadlines(): + for l in f: if line < 100 or line > line_cnt - 100: - self.body.write(recode(l)) + self.body.write(util.to_str(l)) if line == line_cnt - 100: self.body.write("\n\n[...]\n\n") line += 1 else: - util.sendfile(open(log), self.body) + shutil.copyfileobj(open(log), self.body) def set_std_headers(self): self.headers["Date"] = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()) @@ -74,7 +68,7 @@ class Message: f.write("%s: %s\n" % (k, v)) f.write("\n") self.body.seek(0) - util.sendfile(self.body, f) + shutil.copyfileobj(self.body, f) def send(self): if not os.path.exists("/usr/lib/sendmail"): @@ -85,7 +79,7 @@ class Message: f = os.popen(send_sendmail, "w") try: self.write_to(f) - except IOError, e: + except IOError as e: log.alert("sending email message failed: %s" % e) f.close() return False