feat: add support for smtp when send email (#2409)

This commit is contained in:
JonahCui
2024-02-07 18:08:41 +08:00
committed by GitHub
parent 65a02f7d32
commit 71e5828d41
5 changed files with 61 additions and 4 deletions

26
api/libs/smtp.py Normal file
View File

@@ -0,0 +1,26 @@
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
class SMTPClient:
def __init__(self, server: str, port: int, username: str, password: str, _from: str, use_tls=False):
self.server = server
self.port = port
self._from = _from
self.username = username
self.password = password
self._use_tls = use_tls
def send(self, mail: dict):
smtp = smtplib.SMTP(self.server, self.port)
if self._use_tls:
smtp.starttls()
smtp.login(self.username, self.password)
msg = MIMEMultipart()
msg['Subject'] = mail['subject']
msg['From'] = self._from
msg['To'] = mail['to']
msg.attach(MIMEText(mail['html'], 'html'))
smtp.sendmail(self.username, mail['to'], msg.as_string())
smtp.quit()