tools.win_pg_dump_controller
4:a38a008ce3e8
Go to Latest
tools.win_pg_dump_controller/win_pg_dump_controller/smtp_connector.py
+ Иная логика работы с эпохами
3 from .config import Config
5 from email.message import EmailMessage
6 from smtplib import SMTP, SMTPException
7 from typing import List, Optional
8 from socket import gethostname
9 from datetime import datetime
10 from os.path import basename, exists
13 class MailError(Exception):
17 class MailSender(object):
19 server: Optional[str], port: Optional[int],
20 mail_from: Optional[str], mail_to: Optional[str]
24 self.mail_from = mail_from
25 self.mail_to = mail_to if mail_to is not None else 'root'
26 self.port = port if port is not None else 25
28 def sendmail(self, content: str, logs: List[str]) -> None:
31 msg['To'] = self.mail_to
33 msg['From'] = self.mail_from
35 msg['Subject'] = f'{gethostname()}: Posgres backup - {datetime.now()}'
36 msg.set_content(content)
41 msg.add_attachment(open(f).read(), filename=basename(f))
44 raise MailError(f'Error on open logfile "{f}": {e}')
47 s = SMTP(host=self.server, port=self.port)
50 from_addr=(self.mail_from if self.mail_from is not None else ''),
51 to_addrs=self.mail_to,
55 except SMTPException as e:
56 raise MailError(f'Error on sending Email: {e}')
59 def from_config(cls, config: Config):
61 server=config.smtp_server,
62 mail_from=config.mail_from,
63 mail_to=config.mail_to,