Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Отправка email сообщений через одно соединение [RSS Feed]

#1 Фев. 26, 2014 15:11:13

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Отправка email сообщений через одно соединение

Здравствуйте!

Написал класс для отправки нескольких email сообщений через одно SMTP соединение, подскажите пожалуйста все ли я правильно сделал или можно лучше ?


from django.core.mail import get_connection, EmailMultiAlternatives
from django.conf import settings
from django.core.mail import EmailMultiAlternatives
from django.template import loader, Context
from django.utils.html import strip_tags
class Mail:
    def __init__(self):
        self.connection = get_connection()
        self.connection.open()
    def __del__(self):
        self.connection.close()
    def send(self, to, subject, template, context={}, files=None, fail_silently=False):
        if type(to) != list: to = [to, ]
        ctx = Context(context)
        tmpl = loader.get_template(template)
        html_part = tmpl.render(ctx)
        text_part = strip_tags(html_part)
        msg = EmailMultiAlternatives(subject, text_part, settings.EMAIL_HOST_USER, to, connection=self.connection)
        msg.attach_alternative(html_part, 'text/html')
        if files:
            if type(files) != list:
                files = [files, ]
            for file in files:
                msg.attach_file(file)
        return msg.send(fail_silently)
mail = Mail()


from project.utils import mail:
for x in xrange(10):
    mail.send(['user@ya.ru'], 'test %s' % x, 'base.html')
   



Отредактировано andreiru (Фев. 26, 2014 15:12:26)

Офлайн

#2 Фев. 26, 2014 15:29:22

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

Отправка email сообщений через одно соединение

Мыло штука не надежная и медленная. Отправку сообщений в другой поток а лучше в несколько.

Офлайн

#3 Фев. 27, 2014 19:36:44

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Отправка email сообщений через одно соединение

Офлайн

#4 Фев. 28, 2014 06:31:56

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Отправка email сообщений через одно соединение

Singularity
Потоки не пройдут Надо что-то типа celeryhttps://github.com/ui/django-post_officehttps://pypi.python.org/pypi/django-celery-emailhttps://github.com/ui/django-rq

Спасибо, решил попробовать post_office !



Офлайн

  • Начало
  • » Django
  • » Отправка email сообщений через одно соединение[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version