smtplib.SMTPServerDisconnected после отправки нескольких писем в Django - PullRequest
0 голосов
/ 20 мая 2018

У меня есть объекты поста в блоге.После создания сообщения в блоге у меня есть сигнал для отправки электронных писем.И я хочу отправлять электронные письма нескольким подписчикам.Я использую почту Google в качестве почтового сервера.Я поместил в свой файл настроек некоторые атрибуты для использования почты:

EMAIL_HOST = settings['EMAIL']['HOST']
EMAIL_PORT = settings['EMAIL']['PORT']
EMAIL_HOST_USER = settings['EMAIL']['USER']
EMAIL_HOST_PASSWORD = settings['EMAIL']['PASSWORD']
EMAIL_USE_TLS = True

и функцию для отправки почты.Функция - задача сельдерея.

@shared_task
def email_dispatch(heading, text):
    recipients = TheUser.objects.filter(subscription=True)

    for recipient in recipients:
        try:
            html_content = render_to_string('mails/email_dispatch.html', {'text': text})
            text_content = strip_tags(html_content)
            subject = '{}'.format(heading)

            email = EmailMultiAlternatives(subject, text_content, to=[recipient.id_user.email])
            email.attach_alternative(html_content, 'text/html')
            email.send()

            logger.info('Successful processed "{}", sent to: "{}"'.format(count_processed, recipient.id_user.username))

        except NoReverseMatch:
            logger.info('Unexpected username: "{}"'.format(recipient.id_user.username))

    logger.info('Email dispatching has been finished.')

На первый взгляд, все работает хорошо.Когда задача сельдерея начинает выполняться, она отправляется правильно.Но после примерно 80 электронных писем, которые я получил, я получаю

smtplib.SMTPServerDisconnected: соединение неожиданно закрыто

К сожалению, в этом случае я не нашел никакой информации об ограничениях Google Mail.,Возможно, я устанавливаю что-то неправильно со стороны Django или использую неправильную функцию для этого случая.

Спасибо за любую помощь.

...