|
@@ -1,15 +1,26 @@
|
|
from django.core import mail as djmail
|
|
from django.core import mail as djmail
|
|
from django.template.loader import render_to_string
|
|
from django.template.loader import render_to_string
|
|
|
|
+from django.utils.translation import get_language
|
|
|
|
|
|
|
|
+from misago.conf import settings
|
|
|
|
|
|
-def build_mail(request, recipient, subject, template, context=None):
|
|
|
|
- context = context or {}
|
|
|
|
- context['sender'] = request.user
|
|
|
|
- context['recipient'] = recipient
|
|
|
|
- context['subject'] = subject
|
|
|
|
|
|
|
|
- message_plain = render_to_string('%s.txt' % template, context, request=request)
|
|
|
|
- message_html = render_to_string('%s.html' % template, context, request=request)
|
|
|
|
|
|
+def build_mail(recipient, subject, template, sender=None, context=None):
|
|
|
|
+ context = context.copy() if context else {}
|
|
|
|
+ context.update({
|
|
|
|
+ 'SITE_ADDRESS': settings.MISAGO_ADDRESS,
|
|
|
|
+ 'LANGUAGE_CODE': get_language()[:2],
|
|
|
|
+ 'LOGIN_URL': settings.LOGIN_URL,
|
|
|
|
+
|
|
|
|
+ 'misago_settings': settings,
|
|
|
|
+
|
|
|
|
+ 'user': recipient,
|
|
|
|
+ 'sender': sender,
|
|
|
|
+ 'subject': subject,
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ message_plain = render_to_string('%s.txt' % template, context)
|
|
|
|
+ message_html = render_to_string('%s.html' % template, context)
|
|
|
|
|
|
message = djmail.EmailMultiAlternatives(subject, message_plain, to=[recipient.email])
|
|
message = djmail.EmailMultiAlternatives(subject, message_plain, to=[recipient.email])
|
|
message.attach_alternative(message_html, "text/html")
|
|
message.attach_alternative(message_html, "text/html")
|
|
@@ -17,16 +28,18 @@ def build_mail(request, recipient, subject, template, context=None):
|
|
return message
|
|
return message
|
|
|
|
|
|
|
|
|
|
-def mail_user(request, recipient, subject, template, context=None):
|
|
|
|
- message = build_mail(request, recipient, subject, template, context)
|
|
|
|
|
|
+# fixme: rename this function to email_user
|
|
|
|
+def mail_user(recipient, subject, template, sender=None, context=None):
|
|
|
|
+ message = build_mail(recipient, subject, template, sender, context)
|
|
message.send()
|
|
message.send()
|
|
|
|
|
|
|
|
|
|
-def mail_users(request, recipients, subject, template, context=None):
|
|
|
|
|
|
+# fixme: rename this function to email_users
|
|
|
|
+def mail_users(recipients, subject, template, sender=None, context=None):
|
|
messages = []
|
|
messages = []
|
|
|
|
|
|
for recipient in recipients:
|
|
for recipient in recipients:
|
|
- messages.append(build_mail(request, recipient, subject, template, context))
|
|
|
|
|
|
+ messages.append(build_mail(recipient, subject, template, sender, context))
|
|
|
|
|
|
if messages:
|
|
if messages:
|
|
send_messages(messages)
|
|
send_messages(messages)
|