From 2e9d59591e9cfc93c24a96b9dc51ce5dd2ce5a03 Mon Sep 17 00:00:00 2001 From: hernani Date: Mon, 28 Jun 2010 16:14:27 +0000 Subject: [PATCH] Removes old email functions. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@465 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum/actions/user.py | 2 +- forum/subscriptions.py | 2 +- forum/utils/mail.py | 117 ----------------------------------------- forum/views/auth.py | 2 +- 4 files changed, 3 insertions(+), 120 deletions(-) diff --git a/forum/actions/user.py b/forum/actions/user.py index 8f225d2..4a8efab 100644 --- a/forum/actions/user.py +++ b/forum/actions/user.py @@ -5,7 +5,7 @@ from forum.models.action import ActionProxy from forum.models import Award, Badge, ValidationHash from forum import settings from forum.settings import APP_SHORT_NAME -from forum.utils.mail import send_email, send_template_email +from forum.utils.mail import send_template_email class UserJoinsAction(ActionProxy): def repute_users(self): diff --git a/forum/subscriptions.py b/forum/subscriptions.py index b361823..34bbf98 100644 --- a/forum/subscriptions.py +++ b/forum/subscriptions.py @@ -2,7 +2,7 @@ import os import re import datetime from forum.models import User, Question, Comment, QuestionSubscription, SubscriptionSettings, Answer -from forum.utils.mail import send_email, send_template_email +from forum.utils.mail import send_template_email from django.utils.translation import ugettext as _ from forum.actions import AskAction, AnswerAction, CommentAction, AcceptAnswerAction, UserJoinsAction, QuestionViewAction from forum import settings diff --git a/forum/utils/mail.py b/forum/utils/mail.py index 0d281c2..7a61292 100644 --- a/forum/utils/mail.py +++ b/forum/utils/mail.py @@ -22,123 +22,6 @@ from forum.context import application_settings from forum.utils.html2text import HTML2Text 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()) - - try: - if (bool(settings.EMAIL_USE_TLS)): - connection.ehlo() - connection.starttls() - connection.ehlo() - - if settings.EMAIL_HOST_USER and settings.EMAIL_HOST_PASSWORD: - connection.login(str(settings.EMAIL_HOST_USER), str(settings.EMAIL_HOST_PASSWORD)) - - if sender is None: - sender = str(settings.DEFAULT_FROM_EMAIL) - - for email, msg in msgs: - try: - connection.sendmail(sender, [email], msg) - except Exception, e: - pass - try: - connection.quit() - except socket.sslerror: - connection.close() - except Exception, e: - pass - -def html2text(s, ignore_tags=(), indent_width=4, page_width=80): - ignore_tags = [t.lower() for t in ignore_tags] - parser = HTML2Text(ignore_tags, indent_width, page_width) - parser.feed(s) - parser.close() - parser.generate() - return parser.result - -def named(data): - if isinstance(data, (tuple, list)) and len(data) == 2: - return '%s <%s>' % data - - return str(data) - -def create_msg(subject, sender, recipient, html, text, images): - msgRoot = MIMEMultipart('related') - msgRoot['Subject'] = subject - msgRoot['From'] = named(sender) - msgRoot['To'] = named(recipient) - msgRoot.preamble = 'This is a multi-part message from %s.' % unicode(settings.APP_SHORT_NAME).encode('utf8') - - msgAlternative = MIMEMultipart('alternative') - msgRoot.attach(msgAlternative) - - msgAlternative.attach(MIMEText(text, _charset='utf-8')) - msgAlternative.attach(MIMEText(html, 'html', _charset='utf-8')) - - for img in images: - try: - fp = open(img[0], 'rb') - msgImage = MIMEImage(fp.read()) - fp.close() - msgImage.add_header('Content-ID', '<'+img[1]+'>') - msgRoot.attach(msgImage) - except: - pass - - return msgRoot.as_string() - -def send_email(subject, recipients, template, context={}, sender=None, images=[], threaded=True): - if sender is None: - sender = (unicode(settings.APP_SHORT_NAME), unicode(settings.DEFAULT_FROM_EMAIL)) - - if not len(images): - images = [(os.path.join(str(settings.UPFILES_FOLDER), os.path.basename(str(settings.APP_LOGO))), 'logo')] - - context.update(application_settings(None)) - html_body = loader.get_template(template).render(Context(context)) - txt_body = html2text(html_body) - - if isinstance(recipients, str): - recipients = [recipients] - - msgs = [] - - for recipient in recipients: - if isinstance(recipient, str): - recipient_data = ('recipient', recipient) - recipient_context = None - elif isinstance(recipient, (list, tuple)) and len(recipient) == 2: - name, email = recipient - recipient_data = (name, email) - recipient_context = None - elif isinstance(recipient, (list, tuple)) and len(recipient) == 3: - name, email, recipient_context = recipient - recipient_data = (name, email) - else: - raise Exception('bad argument for recipients') - - if recipient_context is not None: - recipient_context = Context(recipient_context) - msg_html = Template(html_body).render(recipient_context) - msg_txt = Template(txt_body).render(recipient_context) - else: - msg_html = html_body - msg_txt = txt_body - - msg = create_msg(subject, sender, recipient_data, msg_html, msg_txt, images) - msgs.append((email, msg)) - - if threaded: - thread = Thread(target=send_msg_list, args=[msgs]) - thread.setDaemon(True) - thread.start() - else: - send_msg_list(msgs) - - def send_template_email(recipients, template, context): t = loader.get_template(template) context.update(dict(recipients=recipients, settings=settings)) diff --git a/forum/views/auth.py b/forum/views/auth.py index 75095a6..5a9f954 100644 --- a/forum/views/auth.py +++ b/forum/views/auth.py @@ -20,7 +20,7 @@ import logging from forum.forms import SimpleRegistrationForm, SimpleEmailSubscribeForm, \ TemporaryLoginRequestForm, ChangePasswordForm, SetPasswordForm -from forum.utils.mail import send_email, send_template_email +from forum.utils.mail import send_template_email from forum.authentication.base import InvalidAuthentication from forum.authentication import AUTH_PROVIDERS -- 2.39.5