diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e8ccb36..e910649 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,6 +14,7 @@ repos: - id: black files: ^backend/ args: + - --check - --diff - repo: https://github.com/pycqa/isort @@ -22,4 +23,5 @@ repos: - id: isort files: ^backend/ args: + - --check-only - --diff diff --git a/backend/backlog_app/config.py b/backend/backlog_app/config.py index 9b8c5f3..a6fcc0e 100644 --- a/backend/backlog_app/config.py +++ b/backend/backlog_app/config.py @@ -2,7 +2,7 @@ from pathlib import Path from typing import Literal -from pydantic import AmqpDsn, BaseModel, field_validator +from pydantic import AmqpDsn, BaseModel, EmailStr, field_validator from pydantic_settings import ( BaseSettings, PydanticBaseSettingsSource, @@ -36,10 +36,18 @@ class AccessToken(BaseModel): class SuperUser(BaseModel): - email: str + email: EmailStr password: str +class SMTPConfig(BaseModel): + username: EmailStr + password: str + server: str + port: int + use_tls: bool = True + + class DataBaseConnection(BaseModel): host: str port: int @@ -118,6 +126,7 @@ def settings_customise_sources( logging: LoggingConfig = LoggingConfig() access_token_db: AccessToken superuser: SuperUser + smtp: SMTPConfig cors_origins: list[str] = ["http://localhost:5173"] diff --git a/backend/backlog_app/servicies/mailing/email_sender.py b/backend/backlog_app/servicies/mailing/email_sender.py index db705f4..7b22ec2 100644 --- a/backend/backlog_app/servicies/mailing/email_sender.py +++ b/backend/backlog_app/servicies/mailing/email_sender.py @@ -3,6 +3,8 @@ import aiosmtplib +from backlog_app.config import settings + async def send_email( recipient: str, @@ -10,9 +12,8 @@ async def send_email( plain_content: str, html_content: str = "", ): - admin_email = "admin@site.com" # todo: перенести в настройки message = MIMEMultipart("alternative") - message["From"] = admin_email + message["From"] = settings.smtp.username message["To"] = recipient message["Subject"] = subject @@ -31,4 +32,11 @@ async def send_email( ) message.attach(html_message) - await aiosmtplib.send(message, hostname="127.0.0.1", port=1025) + await aiosmtplib.send( + message, + hostname=settings.smtp.server, + port=settings.smtp.port, + use_tls=settings.smtp.use_tls, + username=settings.smtp.username, + password=settings.smtp.password, + ) diff --git a/backend/config.default.yaml b/backend/config.default.yaml index 92fb384..19b7f80 100644 --- a/backend/config.default.yaml +++ b/backend/config.default.yaml @@ -4,3 +4,9 @@ backlog: - http://127.0.0.1 logging: log_level_name: INFO + smtp: + username: noreply@site.com + password: noreply + smtp_server: 127.0.0.1 + smtp_port: 1025 + use_tls: False