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')
+ return s.encode('iso-8859-1', 'replace').decode('us-ascii', 'replace')
else:
- return s.encode('us-ascii', 'replace')
+ return s.decode('us-ascii', 'replace')
class Message:
def __init__(self):
self.headers = {}
- self.body = StringIO.StringIO()
+ self.body = StringIO()
self.set_std_headers()
def set_header(self, n, v):
# 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))
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())
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"):
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