Добавлена опция сохранения копии отправленных писем в IMAP Sent

- Добавлены поля IMAP в модель SmtpSettings и миграция колонок
- Реализовано сохранение копии MIME-сообщения через imaplib после SMTP/EWS/Outlook отправки
- Обновлен routes.py: чтение и сохранение IMAP-настроек из формы
- Обновлен шаблон admin/email_settings.html: блок настроек IMAP с подсказками
This commit is contained in:
InviteMe Developer
2026-08-31 14:51:14 +03:00
parent c5fd029818
commit a65cb35b30
5 changed files with 154 additions and 14 deletions
+18
View File
@@ -198,6 +198,16 @@ class SmtpSettings(db.Model):
use_local_outlook = db.Column(db.Boolean, nullable=False, default=False)
use_ews = db.Column(db.Boolean, nullable=False, default=False)
ews_url = db.Column(db.String(500), nullable=True)
# IMAP copy of sent messages
imap_server = db.Column(db.String(255), nullable=True)
imap_port = db.Column(db.Integer, nullable=False, default=993)
imap_use_ssl = db.Column(db.Boolean, nullable=False, default=True)
imap_username = db.Column(db.String(255), nullable=True)
imap_password = db.Column(db.String(255), nullable=True)
imap_folder = db.Column(db.String(255), nullable=True)
imap_save_copy = db.Column(db.Boolean, nullable=False, default=False)
updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False)
@property
@@ -233,6 +243,14 @@ class SmtpSettings(db.Model):
app.config["MAIL_USE_LOCAL_OUTLOOK"] = settings.use_local_outlook
app.config["MAIL_USE_EWS"] = settings.use_ews
app.config["EWS_URL"] = settings.ews_url or ""
app.config["IMAP_SERVER"] = settings.imap_server or ""
app.config["IMAP_PORT"] = settings.imap_port or 993
app.config["IMAP_USE_SSL"] = settings.imap_use_ssl
app.config["IMAP_USERNAME"] = settings.imap_username or settings.mail_username or ""
app.config["IMAP_PASSWORD"] = settings.imap_password or settings.mail_password or ""
app.config["IMAP_FOLDER"] = settings.imap_folder or "Sent"
app.config["IMAP_SAVE_COPY"] = settings.imap_save_copy
except Exception:
pass