Created
May 14, 2013 00:09
-
-
Save edmenendez/5572599 to your computer and use it in GitHub Desktop.
Misc Django Utils. Including mail a Django Group
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.conf import settings | |
from django.contrib.auth.models import User, Permission | |
from django.core.mail import EmailMessage, mail_admins, send_mail, EmailMultiAlternatives | |
from django.db.models import Q | |
from django.utils.html import strip_tags | |
def mail_group(codename, subject, message=None, debug=False, html_message=None): | |
perm = Permission.objects.get(codename=codename) # 'get_billing_emails' | |
users = User.objects.filter(Q(groups__permissions=perm) | Q(user_permissions=perm)).distinct() | |
# default html_message to message if missing | |
if not html_message: | |
html_message = message | |
# Default message to html_message if it's missing. | |
if not message: | |
message = html_message | |
message = strip_tags(message) | |
# Useful info so you know where the email came from | |
html_message += "\n\nMessage sent because you're a member of the group %s." % codename | |
message += "\n\nMessage sent because you're a member of the group %s." % codename | |
# html_message should use <br> instead | |
html_message = html_message.replace('\n', '<br/>') | |
if not debug: | |
emails = [u.email for u in users] | |
else: | |
emails = [e[1] for e in settings.ADMINS] | |
message += "\ndebug is True" | |
#send_mail( | |
# subject, message, settings.DEFAULT_FROM_EMAIL, emails, | |
# fail_silently=False, | |
#) | |
msg = EmailMultiAlternatives(subject, message, settings.DEFAULT_FROM_EMAIL, emails) | |
msg.attach_alternative(html_message, "text/html") | |
msg.send() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment