Начиная с версии 1.2, Django стала поддерживать почтовые backend'ы, что существенно облегчило жизнь разработчику в этом плане. Все, что требуется, так это установить pydkim и создать модуль с бекендом, например <ваше_приложение>/mail/backends.py:
from django.core.mail.backends.smtp import EmailBackend from django.conf import settings import dkim class DKIMBackend(EmailBackend): u''' Бекенд, позволяющий вставлять в письма DKIM-подпись. Требует определения переменных в settings: DKIM_SELECTOR - селектор, все что до точки в "selector._domainkey.example.com" DKIM_DOMAIN - домен например, "example.com" DKIM_PRIVATE_KEY - приватный DKIM-ключ. Полностью, включая "-----BEGIN RSA PRIVATE KEY-----" и т.п. @requires: python-dkim, есть на http://hewgill.com/pydkim ''' def _send(self, email_message): if not email_message.recipients(): return False try: message_string = email_message.message().as_string() signature = dkim.sign(message_string, settings.DKIM_SELECTOR, settings.DKIM_DOMAIN, settings.DKIM_PRIVATE_KEY) self.connection.sendmail(email_message.from_email, email_message.recipients(), signature+message_string) except: if not self.fail_silently: raise return False return True
Останется только сменить в settings.py параметр EMAIL_BACKEND на "<ваше_приложение>.mail.backends.DKIMBackend" и прописать там же DKIM_SELECTOR, DKIM_DOMAIN и DKIM_PRIVATE_KEY (смотрите докстринг в коде). Сгенерировать недостающие ключи можно тут.
Комментариев нет:
Отправить комментарий