37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
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 = "1026090807@qq.com", 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'] = f'Arlo <{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() |