mail.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from django.core import mail as djmail
  2. from django.template import RequestContext
  3. from django.template.loader import render_to_string
  4. def _build_mail(request, recipient, subject, template, context=None):
  5. context = context or {}
  6. context['sender'] = request.user
  7. context['recipient'] = recipient
  8. context = RequestContext(request, context)
  9. message_plain = render_to_string('%s.txt' % template, context)
  10. message_html = render_to_string('%s.html' % template, context)
  11. message = djmail.EmailMultiAlternatives(subject, message_plain,
  12. to=[recipient.email])
  13. message.attach_alternative(message_html, "text/html")
  14. return message
  15. def mail_user(request, recipient, subject, template, context=None):
  16. message = _build_mail(request, recipient, subject, template, context)
  17. message.send()
  18. def mail_users(request, recipients, subject, template, context=None):
  19. messages = []
  20. for recipient in recipients:
  21. messages.append(
  22. _build_mail(request, recipient, subject, template, context))
  23. if messages:
  24. connection = djmail.get_connection()
  25. connection.send_messages(messages)