Repository navigation
Email configuration ru
English · Русский
Доступно с версии 1.4.0. Более ранние версии используют общую почтовую конфигурацию Django. В 1.4.0 для Commentail можно выбрать другой backend, параметры подключения и отправителя, сохранив обычную почту сайта на существующих настройках.
Добавьте COMMENTAIL_EMAIL в настройки Django своего проекта. Это отдельный
общий для проекта словарь вне COMMENTAIL, без секций по hostname и полей
в админке Wagtail. Он применяется ко всем типам писем Commentail.
| Ключ | По умолчанию | Назначение |
|---|---|---|
BACKEND |
None |
Путь импорта класса почтового backend Django. None или отсутствие ключа использует общий EMAIL_BACKEND. |
OPTIONS |
{} |
Именованные аргументы конструктора явно заданного BACKEND. Непустой словарь требует явного пути backend. |
FROM_EMAIL |
None |
Непустой адрес отправителя, при желании с отображаемым именем. None или отсутствие ключа использует DEFAULT_FROM_EMAIL. |
Без COMMENTAIL_EMAIL, а также при значении {}, сохраняется общая отправка.
Можно изменить только отправителя:
COMMENTAIL_EMAIL = {"FROM_EMAIL": "Comments <comments@example.org>"}В OPTIONS допустимы только аргументы конструктора выбранного backend.
Используйте имена в нижнем регистре: например, SMTP принимает host, а не
EMAIL_HOST. Имена параметров backend и fail_silently зарезервированы:
Commentail всегда использует fail_silently=False. При ошибке явно выбранного backend автоматического
перехода на общую почту нет.
python manage.py check проверяет структуру словаря и импорт backend без
создания транспорта и сетевых запросов. Успешная проверка не подтверждает
правильность ключей, разрешение отправителя или доставку.
Добавьте фрагмент в settings.py проекта, сохранив обычные настройки EMAIL_*.
Передайте переменные окружения веб-приложению и фоновым процессам через
существующую конфигурацию сервисов или хранилище секретов.
import os
COMMENTAIL_EMAIL = {
"BACKEND": "django.core.mail.backends.smtp.EmailBackend",
"OPTIONS": {
"host": os.environ["COMMENTAIL_SMTP_HOST"],
"port": 587,
"username": os.environ["COMMENTAIL_SMTP_USERNAME"],
"password": os.environ["COMMENTAIL_SMTP_PASSWORD"],
"use_tls": True,
"use_ssl": False,
"timeout": 20,
},
"FROM_EMAIL": os.environ["COMMENTAIL_FROM_EMAIL"],
}В COMMENTAIL_FROM_EMAIL задайте разрешённого провайдером отправителя, например
Comments <comments@example.org>. Используйте реальные SMTP-сервер и учётные
данные провайдера. Для неявного TLS укажите его порт (обычно 465), use_ssl=True
и use_tls=False. Не включайте оба режима TLS одновременно.
Пропущенные параметры SMTP сохраняют соответствующие значения EMAIL_* Django:
одно указание backend не изолирует учётные данные. Для отдельного аккаунта
задайте все необходимые поля подключения, включая учётные данные и режимы TLS.
Для гостевой формы SMTP требует явный непустой параметр host либо явно
настроенный непустой EMAIL_HOST. Значение None для host наследует EMAIL_HOST.
Пустой адрес или одни пробелы отключают гостевые формы и не позволяют создать
SMTP-транспорт для заданий очереди; ошибка использует прежний лимит повторов.
Commentail ограничивает SMTP-тайм-аут половиной срока захвата задания, максимум
30 секундами, сохраняя меньшие значения. Для других backend конечный тайм-аут
настраивается их собственными средствами.
Это необязательная интеграция в проекте сайта. Commentail не устанавливает SDK провайдера. В тестовом окружении установите версию, использованную в примере:
python -m pip install django-anymail==15.2Добавьте "anymail" в существующий INSTALLED_APPS. Сохраните общий SMTP-backend
сайта в EMAIL_BACKEND и настройки EMAIL_*, затем добавьте:
import os
COMMENTAIL_EMAIL = {
"BACKEND": "anymail.backends.resend.EmailBackend",
"OPTIONS": {
"api_key": os.environ["COMMENTAIL_RESEND_API_KEY"],
"requests_timeout": 20,
},
"FROM_EMAIL": os.environ["COMMENTAIL_FROM_EMAIL"],
}Используйте ключ Resend с правом отправки, разрешённого отправителя/домен и получателя, доступного для вашего аккаунта. Пример опирается на backend Resend и документированные параметры экземпляра Anymail. Для других backend используйте их аргументы конструктора или собственные настройки Django: имена параметров SMTP не универсальны.
Храните секреты в переменных окружения или хранилище секретов. Django не
загружает .env автоматически; фоновый сервис тоже не получает его автоматически.
Не печатайте словари конфигурации и не включайте журналирование сырых запросов
провайдера при проверке ключей.
Для проверки транспорта явно укажите доступного вам тестового получателя:
python manage.py test_commentail_email --to recipient@example.orgКоманда отправляет одно текстовое письмо через выбранные backend и отправителя Commentail. Она не создаёт комментарий, токен, подписку или задание очереди и не обрабатывает ожидающие письма. Отправка выполняется напрямую, даже при выключенной почте Site: это проверка транспорта, а не политики сайта или фонового worker. SMTP-тайм-аут ограничен 30 секундами; другие backend используют собственные настройки тайм-аута. Ошибки показывают только класс исключения, без ответа провайдера и учётных данных. Ненулевой код выхода означает неудачу проверки; повторная попытка может отправить дубликат. Принятие письма backend не подтверждает доставку во входящие: локальный, консольный и dummy-backend тоже могут сообщать о принятии.
- Установите
commentail==1.4.0в окружении сайта. Выполнитеpython manage.py checkс нужными настройками. - После изменения конфигурации перезапустите веб-приложение и фоновые worker'ы. У них должны совпадать настройки, окружение и база данных.
- Проверьте обычное письмо через соответствующую функцию сайта: оно должно использовать прежние общий backend и отправителя.
- Отправьте гостевой комментарий и запустите существующий обработчик или
python manage.py process_commentail. Проверьте Comments → Email delivery, событие у провайдера, отправителя и ссылку в полученном письме; подтвердите email. - Пройдите полный сценарий уведомлений, включая редактирование, ответы и отписку.
Сохраняются существующая очередь, расписание, повторы, проверки доступа и сроки ссылок. Ожидающие задания используют действующие backend и отправителя во время обработки, в том числе если созданы до изменения настроек. Исправление ключей само по себе не возвращает неудачное задание в обработку: устраните причину и используйте существующее действие повтора, когда оно доступно.
Ошибки провайдера и неверная действующая конфигурация почты используют прежний лимит повторов и освобождают захват задания; в диагностике очереди сохраняется класс исключения без приватного ответа. Статус отправки означает принятие backend, а не доставку во входящие. Проверки с имитацией транспорта или локальным backend не подтверждают реальную доставку. См. решение проблем.
- Home
- Главная на русском
- Course in English
- Курс на русском
- Installation
- Configuration
- Moderation
- Rules and CSV
- Guest comments
- Replies and editing
- Email and worker
- Separate email configuration
- Отдельная настройка почты
- Styling
- Templates
- Recent comments
- Structured data
- Callbacks
- Object adapters
- Security and privacy
- Deployment
- Performance
- Troubleshooting
- Example and testing
- Release 0.1.0
- Release 0.1.1
- Release 0.2.0
- Stability
- Template contract
- Release 1.0.0
- Release 1.1.0
- Release 1.2.0
- Release 1.3.0
- Security update 1.3.1
- Translated Site roots 1.3.2
- Release 1.4.1
- Выпуск 1.4.1 на русском
- Release 1.4.0
- Выпуск 1.4.0 на русском
- Changelog
- Roadmap
- Support