-# $Id$
import os
import sys
import pprint
-from types import StringTypes
-from email.MIMEText import MIMEText
-from email.Header import Header
+from email.mime.text import MIMEText
+from email.header import Header
from smtplib import SMTP
-from PLC.Debug import log
+from PLC.Logger import logger
from PLC.Faults import *
def sendmail(api, To, Subject, Body, From = None, Cc = None, Bcc = None):
api.config.PLC_MAIL_SUPPORT_ADDRESS)
# Create a MIME-encoded UTF-8 message
- msg = MIMEText(Body.encode(api.encoding), _charset = api.encoding)
+ msg = MIMEText(Body)
# Unicode subject headers are automatically encoded correctly
msg['Subject'] = Subject
for addr in addresses:
if isinstance(addr, tuple):
(name, addr) = addr
- try:
- name = name.encode('ascii')
- header.append('%s <%s>' % (name, addr))
- except:
- h = Header(name, charset = api.encoding, header_name = header_name)
- header.append('"%s" <%s>' % (h.encode(), addr))
+ h = Header(name, charset = api.encoding, header_name = header_name)
+ header.append('"%s" <%s>' % (h, addr))
else:
header.append(addr)
addrs.append(addr)
msg['X-Mailer'] = "Python/" + sys.version.split(" ")[0]
if not api.config.PLC_MAIL_ENABLED:
- print >> log, "From: %(From)s, To: %(To)s, Subject: %(Subject)s" % msg
+ logger.info("PLC_MAIL_ENABLED not set")
+ logger.info("From: %(From)s, To: %(To)s, Subject: %(Subject)s" % msg)
return
s = SMTP()
s.close()
if rejected:
- raise PLCAPIError, "Error sending message to " + ", ".join(rejected.keys())
+ raise PLCAPIError("Error sending message to " + ", ".join(list(rejected.keys())))