def send_to_discuss_mailing_list(comment, request): """ Handles sending approved posts to discuss listserv. """ #import models here to prevent circular import problem from mailinglists.models import List, MLMessage, Member if comment.is_public == 1: # create a new MLMessage # check to see if already recorded/sent, # if not send and save discuss_list = List.objects.get(listemail='*****@*****.**') mlmessage = MLMessage() mlmessage.user = request.user mlmessage.mllist = discuss_list mlmessage.content_type = ContentType.objects.get(app_label="discuss", model="discussionthread") mlmessage.object_pk = comment.id message_check = MLMessage.objects.filter(object_pk = mlmessage.object_pk, \ content_type = mlmessage.content_type, \ mllist = mlmessage.mllist ) if not message_check: recipients = Member.objects.values('email').filter(listid=discuss_list.id).filter(deleted=0) bcc = [i['email'] for i in recipients] subject = comment.title current_site = Site.objects.get_current() d = { 'comment': comment, 'comment_body': comment.comment, 'comment_url': 'http://%s%s' % (current_site.domain, comment.get_absolute_url()) } plaintext_template = get_template('discuss/email_templates/plaintext.txt') plaintext_message = plaintext_template.render(Context(d)) html_template = get_template('discuss/email_templates/html.html') html_message = html_template.render(Context(d)) email = EmailMultiAlternatives( '[Rhizome Discuss] %s' % subject, plaintext_message, '*****@*****.**', ['*****@*****.**'], bcc, headers = {'Reply-To': '*****@*****.**'} ) email.attach_alternative(html_message, 'text/html') try: email.send(fail_silently=False) mlmessage.sent = True except: mlmessage.sent = False mlmessage.save()
def send_to_announce_main(instance, created, instance_email, sub_content_type): from models import List, MLMessage, Member #import models here to prevent circular import problem #check to see if already recorded/sent, if not send announce_main_list = List.objects.get(listemail='*****@*****.**') message_check = MLMessage.objects.filter( object_pk = instance.id, content_type = instance.content_type, mllist = announce_main_list ) if not message_check: #create the bcc recipient list and add it to the email announce_main_members = Member.objects.values('email').filter(listid = announce_main_list.id).exclude(deleted = 1) announce_main_recipients_list = [ i['email'] for i in announce_main_members] instance_email.bcc = announce_main_recipients_list #create the mlmessage main_mlmessage = MLMessage() main_mlmessage.user = instance.user main_mlmessage.mllist = announce_main_list main_mlmessage.content_type = sub_content_type main_mlmessage.object_pk = instance.id # send try: instance_email.send(fail_silently=False) main_mlmessage.sent = True except: main_mlmessage.sent = False main_mlmessage.save() else: pass
def send_to_announce_sub(instance, created, instance_email, sub_content_type): from models import List, MLMessage, Member #create the bcc recipient list and add it to the email announce_sub_list = List.objects.get(content_type=sub_content_type) #check to see if already recorded/sent, if not send message_check = MLMessage.objects.filter( object_pk=instance.id, content_type=instance.content_type, mllist=announce_sub_list) if not message_check: announce_sub_list_members = Member.objects.values('email').filter( listid=announce_sub_list.id).exclude(deleted=1) announce_sub_recipient_list = [ i['email'] for i in announce_sub_list_members ] instance_email.bcc = announce_sub_recipient_list instance_email.subject = "[%s] %s" % (announce_sub_list.title, instance.title) #create the mlmessage sub_mlmessage = MLMessage() sub_mlmessage.user = instance.user sub_mlmessage.mllist = announce_sub_list sub_mlmessage.content_type = sub_content_type sub_mlmessage.object_pk = instance.id try: instance_email.send(fail_silently=False) sub_mlmessage.sent = True except: sub_mlmessage.sent = False sub_mlmessage.save() else: #print 'message already sent' pass
def send_to_announce_main(instance, created, instance_email, sub_content_type): from models import List, MLMessage, Member #import models here to prevent circular import problem #check to see if already recorded/sent, if not send announce_main_list = List.objects.get(listemail='*****@*****.**') message_check = MLMessage.objects.filter( object_pk=instance.id, content_type=instance.content_type, mllist=announce_main_list) if not message_check: #create the bcc recipient list and add it to the email announce_main_members = Member.objects.values('email').filter( listid=announce_main_list.id).exclude(deleted=1) announce_main_recipients_list = [ i['email'] for i in announce_main_members ] instance_email.bcc = announce_main_recipients_list #create the mlmessage main_mlmessage = MLMessage() main_mlmessage.user = instance.user main_mlmessage.mllist = announce_main_list main_mlmessage.content_type = sub_content_type main_mlmessage.object_pk = instance.id # send try: instance_email.send(fail_silently=False) main_mlmessage.sent = True except: main_mlmessage.sent = False main_mlmessage.save() else: pass
def send_to_announce_sub(instance, created, instance_email, sub_content_type): from models import List, MLMessage, Member #create the bcc recipient list and add it to the email announce_sub_list = List.objects.get(content_type=sub_content_type) #check to see if already recorded/sent, if not send message_check = MLMessage.objects.filter( object_pk = instance.id, content_type = instance.content_type, mllist = announce_sub_list ) if not message_check: announce_sub_list_members = Member.objects.values('email').filter(listid = announce_sub_list.id).exclude(deleted = 1) announce_sub_recipient_list = [i['email'] for i in announce_sub_list_members] instance_email.bcc = announce_sub_recipient_list instance_email.subject = "[%s] %s" % (announce_sub_list.title, instance.title) #create the mlmessage sub_mlmessage = MLMessage() sub_mlmessage.user = instance.user sub_mlmessage.mllist = announce_sub_list sub_mlmessage.content_type = sub_content_type sub_mlmessage.object_pk = instance.id try: instance_email.send(fail_silently=False) sub_mlmessage.sent = True except: sub_mlmessage.sent = False sub_mlmessage.save() else: #print 'message already sent' pass
def send_to_discuss_mailing_list(comment, request): """ Handles sending approved posts to discuss listserv. """ #import models here to prevent circular import problem from mailinglists.models import List, MLMessage, Member if comment.is_public == 1: # create a new MLMessage # check to see if already recorded/sent, # if not send and save discuss_list = List.objects.get(listemail='*****@*****.**') mlmessage = MLMessage() mlmessage.user = request.user mlmessage.mllist = discuss_list mlmessage.content_type = ContentType.objects.get( app_label="discuss", model="discussionthread") mlmessage.object_pk = comment.id message_check = MLMessage.objects.filter(object_pk = mlmessage.object_pk, \ content_type = mlmessage.content_type, \ mllist = mlmessage.mllist ) if not message_check: recipients = Member.objects.values('email').filter( listid=discuss_list.id).filter(deleted=0) bcc = [i['email'] for i in recipients] subject = comment.title current_site = Site.objects.get_current() d = { 'comment': comment, 'comment_body': comment.comment, 'comment_url': 'http://%s%s' % (current_site.domain, comment.get_absolute_url()) } plaintext_template = get_template( 'discuss/email_templates/plaintext.txt') plaintext_message = plaintext_template.render(Context(d)) html_template = get_template('discuss/email_templates/html.html') html_message = html_template.render(Context(d)) email = EmailMultiAlternatives( '[Rhizome Discuss] %s' % subject, plaintext_message, '*****@*****.**', ['*****@*****.**'], bcc, headers={'Reply-To': '*****@*****.**'}) email.attach_alternative(html_message, 'text/html') try: email.send(fail_silently=False) mlmessage.sent = True except: mlmessage.sent = False mlmessage.save()