Пример #1
0
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()
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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()