import time
import os
import sys
-if sys.version_info[0] == 2:
- import StringIO
-else:
- from io 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):
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)
line = 0
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())
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"):