def handle_noargs(self, **options): verbose = int(options['verbosity']) if verbose: print 'Starting sending newsletters...' activate(settings.LANGUAGE_CODE) for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter, verbose=verbose) if mailer.can_send: if verbose: # TODO: # # * implement proper logging # # * alter tests to address encoding #print 'Start emailing %s' % newsletter.title print 'Start emailing %s' % unicode(newsletter.id, encoding='utf-8') mailer.run() if verbose: print 'End session sending'
def test_update_newsletter_status_advanced(self): self.server.mails_hour = 2 self.server.save() mailer = Mailer(self.newsletter) mailer.smtp = FakeSMTP() mailer.run() self.assertEquals(mailer.smtp.mails_sent, 2) self.assertEquals( ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT, newsletter=self.newsletter).count(), 2) self.assertEquals(self.newsletter.status, Newsletter.SENDING) self.server.mails_hour = 0 self.server.save() mailer = Mailer(self.newsletter) mailer.smtp = FakeSMTP() mailer.run() self.assertEquals(mailer.smtp.mails_sent, 2) self.assertEquals( ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT, newsletter=self.newsletter).count(), 4) self.assertEquals(self.newsletter.status, Newsletter.SENT)
def test_update_newsletter_status_advanced(self): self.server.mails_hour = 2 self.server.save() mailer = Mailer(self.newsletter) mailer.smtp = FakeSMTP() mailer.build_email_content = fake_email_content mailer.run() self.assertEquals(mailer.smtp.mails_sent, 2) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT, newsletter=self.newsletter).count(), 2) self.assertEquals(self.newsletter.status, Newsletter.SENDING) self.server.mails_hour = 0 self.server.save() mailer = Mailer(self.newsletter) mailer.smtp = FakeSMTP() mailer.build_email_content = fake_email_content mailer.run() self.assertEquals(mailer.smtp.mails_sent, 2) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT, newsletter=self.newsletter).count(), 4) self.assertEquals(self.newsletter.status, Newsletter.SENT)
def handle_noargs(self, **options): verbose = int(options['verbosity']) if verbose: print 'Starting sending newsletters...' activate(settings.LANGUAGE_CODE) for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter, verbose=verbose) if mailer.can_send: if verbose: # TODO: # # * implement proper logging # # * alter tests to address encoding #print 'Start emailing %s' % newsletter.title print 'Start emailing %s' % unicode(newsletter.id, encoding='utf-8') mailer.run() if verbose: print 'End session sending'
def handle_noargs(self, **options): print 'Starting sending newsletters...' for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter) if mailer.can_send: print 'Start emailing %s' % newsletter.title mailer.run() print 'End session sending'
def send_mail_test(self, request, queryset): """Send newsletter in test""" for newsletter in queryset: if newsletter.test_contacts.count(): mailer = Mailer(newsletter, test=True) mailer.run() self.message_user(request, _('%s succesfully sent.') % newsletter) else: self.message_user( request, _('No test contacts assigned for %s.') % newsletter)
def send_mail_test(self, request, queryset): """Send newsletter in test""" for newsletter in queryset: if newsletter.test_contacts.count(): mailer = Mailer(newsletter, test=True) try: mailer.run() except HTMLParseError: self.message_user(request, _('Unable send newsletter, due to errors within HTML.')) continue self.message_user(request, _('%s succesfully sent.') % newsletter) else: self.message_user(request, _('No test contacts assigned for %s.') % newsletter)
def send_mail_test(self, request, queryset): """Send newsletter in test""" for newsletter in queryset: if newsletter.test_contacts.count(): mailer = Mailer(newsletter, test=True) try: mailer.run() except HTMLParseError: self.message_user(request, _('Unable send newsletter, due to errors within HTML.')) continue self.message_user(request, _('%s succesfully sent.') % newsletter) else: self.message_user(request, _('No test contacts assigned for %s.') % newsletter)
def handle_noargs(self, **options): verbose = int(options['verbosity']) if verbose: print 'Starting sending newsletters...' for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter) if mailer.can_send: if verbose: print 'Start emailing %s' % newsletter.title mailer.run() if verbose: print 'End session sending'
def handle_noargs(self, **options): verbose = int(options["verbosity"]) if verbose: print "Starting sending newsletters..." activate(settings.LANGUAGE_CODE) for newsletter in Newsletter.objects.exclude(status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter, verbose=verbose) if mailer.can_send: if verbose: print u"Start emailing %s" % newsletter.pk mailer.run() if verbose: print "End session sending"
def test_run(self): mailer = Mailer(self.newsletter) mailer.smtp = FakeSMTP() mailer.run() self.assertEquals(mailer.smtp.mails_sent, 4) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT, newsletter=self.newsletter).count(), 4) mailer = Mailer(self.newsletter, test=True) mailer.smtp = FakeSMTP() mailer.run() self.assertEquals(mailer.smtp.mails_sent, 2) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT_TEST, newsletter=self.newsletter).count(), 2) mailer.smtp = None
def test_run(self): mailer = Mailer(self.newsletter) mailer.smtp = FakeSMTP() mailer.run() self.assertEquals(mailer.smtp.mails_sent, 4) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT, newsletter=self.newsletter).count(), 4) mailer = Mailer(self.newsletter, test=True) mailer.smtp = FakeSMTP() mailer.run() self.assertEquals(mailer.smtp.mails_sent, 2) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.SENT_TEST, newsletter=self.newsletter).count(), 2) mailer.smtp = None
def test_recipients_refused(self): server = SMTPServer.objects.create(name='Local SMTP', host='localhost') contact = Contact.objects.create(email='thisisaninvalidemail') self.newsletter.test_contacts.clear() self.newsletter.test_contacts.add(contact) self.newsletter.server = server self.newsletter.save() self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.INVALID, newsletter=self.newsletter).count(), 0) mailer = Mailer(self.newsletter, test=True) mailer.build_email_content = fake_email_content mailer.run() self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.INVALID, newsletter=self.newsletter).count(), 1)
def handle_noargs(self, **options): verbose = int(options['verbosity']) if verbose: print 'Starting sending newsletters...' activate(settings.LANGUAGE_CODE) for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter, verbose=verbose) if mailer.can_send: if verbose: print u'Start emailing %s' % unicode(newsletter.id) mailer.run() if verbose: print 'End session sending'
def handle_noargs(self, **options): verbose = int(options['verbosity']) if verbose: print 'Starting sending newsletters...' activate(settings.LANGUAGE_CODE) for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter, verbose=verbose) if mailer.can_send: if verbose: print 'Start emailing %s' % codecs.encode(newsletter.title,"utf-8") mailer.run() if verbose: print 'End session sending'
def test_recipients_refused(self): server = SMTPServer.objects.create(name='Local SMTP', host='localhost') contact = Contact.objects.create(email='thisisaninvalidemail') self.newsletter.test_contacts.clear() self.newsletter.test_contacts.add(contact) self.newsletter.server = server self.newsletter.save() self.assertEquals(contact.valid, True) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.INVALID, newsletter=self.newsletter).count(), 0) mailer = Mailer(self.newsletter, test=True) mailer.run() self.assertEquals(Contact.objects.get(email='thisisaninvalidemail').valid, False) self.assertEquals(ContactMailingStatus.objects.filter( status=ContactMailingStatus.INVALID, newsletter=self.newsletter).count(), 1)
def handle(self, **options): from emencia.django.newsletter.mailer import Mailer from emencia.django.newsletter.models import Newsletter translation.activate('de') verbose = int(options['verbosity']) if verbose: print('Starting sending newsletters...') for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter) if mailer.can_send: if verbose: print('Start emailing %r' % newsletter.title) mailer.run() if verbose: print('End session sending')
def handle_noargs(self, **options): verbose = int(options['verbosity']) if verbose: print 'Starting sending newsletters...' activate(settings.LANGUAGE_CODE) is_test = options.get('test', False) for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter, test=is_test, verbose=verbose) if mailer.can_send: if verbose: print 'Start emailing %s' % unicode( newsletter.title).encode('utf-8') mailer.run() if verbose: print 'End session sending'