Update Email.py

Fixed to accomodate SMTP service where `username` is not an email address from #702
This commit is contained in:
Donald Zou 2025-04-25 13:39:29 +08:00
parent 8f0f4b168b
commit 510f60bdeb

View File

@ -33,8 +33,7 @@ class EmailSender:
return self.DashboardConfig.GetConfig("Email", "send_from")[1] return self.DashboardConfig.GetConfig("Email", "send_from")[1]
def ready(self): def ready(self):
print(self.Server()) return len(self.Server()) > 0 and len(self.Port()) > 0 and len(self.Encryption()) > 0 and len(self.Username()) > 0 and len(self.Password()) > 0 and len(self.SendFrom())
return len(self.Server()) > 0 and len(self.Port()) > 0 and len(self.Encryption()) > 0 and len(self.Username()) > 0 and len(self.Password()) > 0
def send(self, receiver, subject, body, includeAttachment = False, attachmentName = ""): def send(self, receiver, subject, body, includeAttachment = False, attachmentName = ""):
if self.ready(): if self.ready():
@ -46,7 +45,7 @@ class EmailSender:
self.smtp.login(self.Username(), self.Password()) self.smtp.login(self.Username(), self.Password())
message = MIMEMultipart() message = MIMEMultipart()
message['Subject'] = subject message['Subject'] = subject
message['From'] = formataddr((Header(self.SendFrom()).encode(), self.Username())) message['From'] = self.SendFrom()
message["To"] = receiver message["To"] = receiver
message.attach(MIMEText(body, "plain")) message.attach(MIMEText(body, "plain"))
@ -62,7 +61,7 @@ class EmailSender:
else: else:
self.smtp.close() self.smtp.close()
return False, "Attachment does not exist" return False, "Attachment does not exist"
self.smtp.sendmail(self.Username(), receiver, message.as_string()) self.smtp.sendmail(self.SendFrom(), receiver, message.as_string())
self.smtp.close() self.smtp.close()
return True, None return True, None
except Exception as e: except Exception as e: