Beispiel #1
0
def send_digest(request):
    html = request.POST.get('html')
    subject = request.POST.get('subject', "Your Minigroup digest for today")
    if not html:
        return HttpResponse(status=400, reason='Bad Request')
    profile_url = settings.ORIGIN + reverse('user_edit')
    html += '<p><small>To unsubscribe from this digest, please visit your ' \
            '<a href="' + profile_url + '">account settings</a>.</small></p>'
    memberships = Membership.objects.filter(
        user__is_active=True,
        receives_minigroup_digest=True
    ).exclude(user__email='')
    msg = EmailMessage(
        subject=subject,
        body=html,
        bcc=[membership.user.email for membership in memberships],
    )
    msg.content_subtype = "html"

    # If we're using a Mandrill backend, this will set the tags for
    # the outbound email; otherwise it probably won't do anything.
    msg.tags = ["minigroup_digestif"]

    msg.send()
    return HttpResponse('Digest sent.')
Beispiel #2
0
def send_email(to, subject, template_name, context=None, tags=None):
    html_content = render_to_string('emails/' + template_name,
                                    context if context else {})
    to = [to] if type(to) in [str] else to

    msg = EmailMessage(subject, html_content, settings.DEFAULT_FROM_EMAIL, to)
    msg.content_subtype = 'html'
    msg.tags = tags if tags else []

    msg.send(fail_silently=True)
Beispiel #3
0
def send_digest(request):
    html = request.POST.get('html')
    if not html:
        return HttpResponse(status=400, reason='Bad Request')
    memberships = Membership.objects.filter(
        user__is_active=True,
        receives_minigroup_digest=True
    ).exclude(user__email='')
    msg = EmailMessage(
        subject="Your Minigroup digest for today",
        body=html,
        bcc=[membership.user.email for membership in memberships],
    )
    msg.content_subtype = "html"

    # If we're using a Mandrill backend, this will set the tags for
    # the outbound email; otherwise it probably won't do anything.
    msg.tags = ["minigroup_digestif"]

    msg.send()
    return HttpResponse('Digest sent.')
Beispiel #4
0
def send_email(to,
               subject,
               template_name,
               context=None,
               tags=None,
               is_api=True):
    html_content = render_to_string('emails/' + template_name,
                                    context if context else {})
    to = [to] if type(to) in [str] else to

    if is_api:
        url = '{}/send/message'.format(settings.POSTAL['POSTAL_API_URL'])

        payload = {
            'to': to,
            'from': settings.POSTAL['POSTAL_FROM_EMAIL'],
            'subject': subject.encode('utf-8'),
            'html_body': html_content
        }

        if tags:
            payload['tag'] = tags

        header = {'X-Server-API-Key': settings.POSTAL['POSTAL_API_KEY']}
        response = requests.post(url, data=payload, headers=header)
        response_json = response.json()

        if response_json['status'] == 'error':
            logger.error(response_json)
    else:
        msg = EmailMessage(subject, html_content, settings.DEFAULT_FROM_EMAIL,
                           to)
        msg.content_subtype = 'html'
        msg.tags = tags if tags else []

        msg.send(fail_silently=True)
Beispiel #5
0
def send_digest(request):
    html = request.POST.get('html')
    subject = request.POST.get('subject', "Your Minigroup digest for today")
    if not html:
        return HttpResponse(status=400, reason='Bad Request')
    profile_url = settings.ORIGIN + reverse('user_edit')
    html += '<p><small>To unsubscribe from this digest, please visit your ' \
            '<a href="' + profile_url + '">account settings</a>.</small></p>'
    memberships = Membership.objects.filter(
        user__is_active=True,
        receives_minigroup_digest=True).exclude(user__email='')
    msg = EmailMessage(
        subject=subject,
        body=html,
        bcc=[membership.user.email for membership in memberships],
    )
    msg.content_subtype = "html"

    # If we're using a Mandrill backend, this will set the tags for
    # the outbound email; otherwise it probably won't do anything.
    msg.tags = ["minigroup_digestif"]

    msg.send()
    return HttpResponse('Digest sent.')