import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from log.log_manager import log class MailManager: def __init__(self, email: str = "Arlo", password: str = "hqorvminmnuubebf"): self.sender_email = email self.server = smtplib.SMTP('smtp.qq.com', 587) self.server.starttls() # Secure the connection self.server.login(email, password) # Login with your email and password def send_mail(self, subject: str, content: str, receiver_email:str = "changsongd@126.com"): message = MIMEMultipart() message['From'] = self.sender_email message['To'] = receiver_email message['Subject'] = subject message.attach(MIMEText(content, 'plain')) text = message.as_string() try: self.server.sendmail(self.sender_email, receiver_email, text) except Exception as e: log(f"send mail failed with error {e}. subject: {subject}") def finish(self): self.server.quit() def send_mail(subject: str, content: str, receiver_email:str = None): mail_manager = MailManager() if receiver_email is None: mail_manager.send_mail(subject, content) else: mail_manager.send_mail(subject, content, receiver_email) mail_manager.finish()