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)
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)
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)))
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), ))