Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ repos:
- id: black
files: ^backend/
args:
- --check
- --diff

- repo: https://github.com/pycqa/isort
Expand All @@ -22,4 +23,5 @@ repos:
- id: isort
files: ^backend/
args:
- --check-only
- --diff
13 changes: 11 additions & 2 deletions backend/backlog_app/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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"]


Expand Down
14 changes: 11 additions & 3 deletions backend/backlog_app/servicies/mailing/email_sender.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,17 @@

import aiosmtplib

from backlog_app.config import settings


async def send_email(
recipient: str,
subject: str,
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

Expand All @@ -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,
)
6 changes: 6 additions & 0 deletions backend/config.default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading