У меня есть объекты поста в блоге.После создания сообщения в блоге у меня есть сигнал для отправки электронных писем.И я хочу отправлять электронные письма нескольким подписчикам.Я использую почту 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 или использую неправильную функцию для этого случая.
Спасибо за любую помощь.