Пример #1
0
    def test_request_sent(self):
        responses.add(
            responses.Response(
                method='POST',
                url=settings.MAILGUN_API_URL,
                match_querystring=True,
                content_type='application/json',
                status=200,
            ))

        send_mail(
            receiver='*****@*****.**',
            subject='',
            text='',
            sender='test',
        )

        self.assertEqual(len(responses.calls), 1)
Пример #2
0
    def test_400_exception_raised(self):
        responses.add(
            responses.Response(
                method='POST',
                url=settings.MAILGUN_API_URL,
                match_querystring=True,
                content_type='application/json',
                status=400,
            ))

        with self.assertRaises(MailSendException):
            send_mail(
                receiver='*****@*****.**',
                subject='',
                text='',
                sender='test',
            )

        self.assertEqual(len(responses.calls), 1)
Пример #3
0
def notify_editors_about_annotation_request(annotation_request):
    # Send e-mail to Przypis Powszechny postbox
    subject = 'Prośba o przypis w tekście' if annotation_request.quote else 'Prośba o przypis'
    text = mail_template.format(url=annotation_request.url,
                                quote=annotation_request.quote)

    try:
        send_mail(
            sender='prosba-o-przypis',
            receiver='*****@*****.**',
            subject=subject,
            text=text,
        )
    except MailSendException as e:
        logger.error(
            'Annotation request (url: {url}, quote: {quote}) could not be sent by e-mail: {e}'
            .format(url=annotation_request.url,
                    quote=Truncator(annotation_request.quote).chars(20),
                    e=str(e)))
Пример #4
0
def notify_annotation_url_subscribers(annotation_id):
    annotation = Annotation.objects.get(pk=annotation_id)
    annotation_requests = AnnotationRequest.objects.filter(url_id=annotation.url_id)
    url = annotation.url

    notification_emails = []
    recipient_variables = {}
    for instance in annotation_requests:
        if instance.notification_email:
            notification_emails.append((instance.notification_email, None))
            token = Signer().sign(instance.id).split(':')[1]
            unsubscribe_reverse = reverse('site:annotation_request_unsubscribe',
                                          kwargs={'annotation_request_id': instance.id, 'token': token})
            unsubscribe_link = '{}{}'.format(settings.HOST, unsubscribe_reverse)
            recipient_variables[instance.notification_email] = {'unsubscribe_link': unsubscribe_link}
    if not notification_emails:
        return

    # TODO: format as HTML
    subject = 'Dodano przypis na stronie, na którą czytałeś'
    text = '''
            Hej,
            Ostatnio skorzystałeś z "poproś o przypis" na stronie {}.
            Właśnie ktoś dodał na niej przypis. Możliwe, że odpowiada na Twoje zgłoszenie!
            Sprawdź!
            {}
            By zrezygnować z subskrypcji, wejdź tutaj: %recipient.unsubscribe_link%
                    '''.format(url, url)

    try:
        send_mail(
            sender='dodano-przypis',
            receiver=notification_emails,
            subject=subject,
            text=text,
            recipient_variables=recipient_variables,
        )
    except MailSendException as e:
        logger.error('Annotation request notification (url: {}) could not be sent by e-mail: {}'.format(
            url,
            str(e),
        ))