]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/utils/mail.py
OSQA-266
[osqa.git] / forum / utils / mail.py
index 1d9e384b5b5a6702d84ee199e3e0967dd53b7d2c..0d281c234c626c5ce4fc9c0cef757a38965a2b6b 100644 (file)
@@ -2,11 +2,16 @@ import email
 import socket
 import os
 
-from email.mime.multipart import MIMEMultipart
-from email.mime.text import MIMEText
-from email.mime.image import MIMEImage
-from email.header import Header
-import email.Charset
+try:
+    from email.mime.multipart import MIMEMultipart
+    from email.mime.text import MIMEText
+    from email.mime.image import MIMEImage
+    from email.header import Header
+except:
+    from email.MIMEMultipart import MIMEMultipart
+    from email.MIMEText import MIMEText
+    from email.MIMEImage import MIMEImage
+    from email.Header import Header
 
 from django.core.mail import DNS_NAME
 from smtplib import SMTP
@@ -20,7 +25,7 @@ from threading import Thread
 def send_msg_list(msgs, sender=None):
     if len(msgs):
         connection = SMTP(str(settings.EMAIL_HOST), str(settings.EMAIL_PORT),
-                local_hostname=DNS_NAME.get_fqdn())
+                          local_hostname=DNS_NAME.get_fqdn())
 
         try:
             if (bool(settings.EMAIL_USE_TLS)):
@@ -127,7 +132,7 @@ def send_email(subject, recipients, template, context={}, sender=None, images=[]
         msgs.append((email, msg))
 
     if threaded:
-        thread = Thread(target=send_msg_list,  args=[msgs])
+        thread = Thread(target=send_msg_list, args=[msgs])
         thread.setDaemon(True)
         thread.start()
     else:
@@ -140,14 +145,17 @@ def send_template_email(recipients, template, context):
     t.render(Context(context))
 
 def create_and_send_mail_messages(messages):
+    if not settings.EMAIL_HOST:
+        return
+
     sender = Header(unicode(settings.APP_SHORT_NAME), 'utf-8')
     sender.append('<%s>' % unicode(settings.DEFAULT_FROM_EMAIL))
     sender = u'%s <%s>' % (unicode(settings.APP_SHORT_NAME), unicode(settings.DEFAULT_FROM_EMAIL))
 
-    connection = SMTP(str(settings.EMAIL_HOST), str(settings.EMAIL_PORT),
-                local_hostname=DNS_NAME.get_fqdn())
-
     try:
+        connection = SMTP(str(settings.EMAIL_HOST), str(settings.EMAIL_PORT),
+                          local_hostname=DNS_NAME.get_fqdn())
+
         if (bool(settings.EMAIL_USE_TLS)):
             connection.ehlo()
             connection.starttls()
@@ -168,7 +176,7 @@ def create_and_send_mail_messages(messages):
             to = Header(recipient.username, 'utf-8')
             to.append('<%s>' % recipient.email)
             msgRoot['To'] = to
-            
+
             msgRoot.preamble = 'This is a multi-part message from %s.' % unicode(settings.APP_SHORT_NAME).encode('utf8')
 
             msgAlternative = MIMEMultipart('alternative')