diff --git a/apps/emencia/django/newsletter/mailer.py b/apps/emencia/django/newsletter/mailer.py index 8a60e84c..324e7ab9 100644 --- a/apps/emencia/django/newsletter/mailer.py +++ b/apps/emencia/django/newsletter/mailer.py @@ -168,11 +168,12 @@ class NewsLetterSender(object): """ content_html = self.build_email_content(contact, announce_context) - content_html = content_html.format( - **{ - 'name': name or contact.first_name or contact.last_name or _(u'Подписчик') - } - ) + if '{name}' in content_html: + content_html = content_html.format( + **{ + 'name': name or contact.first_name or contact.last_name or _(u'Подписчик') + } + ) h = HTMLParser.HTMLParser() content_html = h.unescape(content_html) @@ -349,7 +350,6 @@ class NewsLetterSender(object): logo_path = default_storage.path('newsletter/images/no-logo.png') elif logo and not logo_path: logo_path = logo.path - print(logo, logo_path, obj) try: ctype, encoding = mimetypes.guess_type(logo_path) @@ -646,16 +646,18 @@ class Mailer(NewsLetterSender): expedition_list = self.expedition_list - number_of_recipients = len(expedition_list) - if self.verbose: - print '%i emails will be sent' % number_of_recipients + # number_of_recipients = len(expedition_list) + # if self.verbose: + # print '%i emails will be sent' % number_of_recipients - i = 1 - for contact in expedition_list: + # FIXME: Временно сделана отправка только 1 письма. + # См FIXME в команде send_newsletter + for i, contact in enumerate(expedition_list, 1): + print 'sending to contact id:', contact.pk send = True - if self.verbose: - print '- Processing %s/%s (%s)' % ( - i, number_of_recipients, contact.pk) + # if self.verbose: + # print '- Processing %s/%s (%s)' % ( + # i, number_of_recipients, contact.pk) # self.build_preheader_ctx(contact) @@ -697,8 +699,6 @@ class Mailer(NewsLetterSender): self.smtp.quit() self.smtp_connect() - i += 1 - # маркируем оставшиеся контакты на второй этап self.mark_contacts_for_second_stage() @@ -720,10 +720,13 @@ class Mailer(NewsLetterSender): return [] if self.newsletter.dailymail and not self.test: - return self.newsletter.get_dailymail_subscribers() + # FIXME: врменно добавил жёсткий срез для отправки 1 письма + return self.newsletter.get_dailymail_subscribers()[:1] qs = super(Mailer, self).expedition_list + # FIXME: врменно добавил жёсткий срез для отправки 1 письма + self.credits = 1 qs = qs[:self.credits] if self.test: diff --git a/apps/emencia/django/newsletter/management/commands/send_newsletter.py b/apps/emencia/django/newsletter/management/commands/send_newsletter.py index f88b2c12..4f430415 100644 --- a/apps/emencia/django/newsletter/management/commands/send_newsletter.py +++ b/apps/emencia/django/newsletter/management/commands/send_newsletter.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- """Command for sending the newsletter""" from datetime import datetime, timedelta from time import sleep @@ -20,12 +21,15 @@ class Command(NoArgsCommand): self.verbose = int(options['verbosity']) activate(settings.LANGUAGE_CODE) - if SEND_HOUR_LOOP: - while self.end_time > datetime.now(): - self.send() - sleep(30) - else: - self.send() + # FIXME: временно делаем одну отправку и завершаем. + # Это сделано для того, чтобы отправка писем была более контролируемая + self.send() + # if SEND_HOUR_LOOP: + # while self.end_time > datetime.now(): + # self.send() + # sleep(30) + # else: + # self.send() if self.verbose: print 'End session sending' diff --git a/proj/settings.py b/proj/settings.py index db4237ae..61d49051 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -417,7 +417,9 @@ CRONJOBS = [ ('40 6 * * * ', 'django.core.management.call_command', ['newsletter_contacts_remove_notactivated']), ('30 2 * * *', 'django.core.management.call_command', ['newsletter_create_dailymail']), - ('35 * * * *', 'django.core.management.call_command', ['send_newsletter']), + # FIXME: команда временно переделана на отправку 1 письма. + # В свою очередь запуск по крону будет происходить допустим каждые 2 секунды + # ('35 * * * *', 'django.core.management.call_command', ['send_newsletter']), ('12 4 * * *', 'django.core.management.call_command', ['stats_daily']), ('5 10 * * *', 'django.core.management.call_command', ['update_events_filter_fields']),