Coverage for src/core/mail.py: 35%
20 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-25 22:09 +0300
« prev ^ index » next coverage.py v7.11.0, created at 2025-11-25 22:09 +0300
1from email.message import EmailMessage
2import smtplib
4from .settings import MailSettings
7class MailClient:
8 def __init__(self, settings: MailSettings):
9 self.settings = settings
11 def send(self, recipients: list[str], subject: str, body: str):
12 msg = EmailMessage()
13 msg.set_content(body)
14 server = smtplib.SMTP(self.settings.host, self.settings.port, timeout=5)
15 server.starttls()
16 server.login(self.settings.login, self.settings.password)
18 msg = EmailMessage()
19 msg["Subject"] = subject
20 msg.set_content(body)
21 msg["From"] = self.settings.login
23 for recipient in recipients:
24 msg["To"] = recipient
25 server.send_message(msg)
27 server.quit()