|
@@ -20,33 +20,33 @@ class SendEmailToolParameters(BaseModel):
|
|
|
encrypt_method: str
|
|
|
|
|
|
|
|
|
-def send_mail(parmas: SendEmailToolParameters):
|
|
|
+def send_mail(params: SendEmailToolParameters):
|
|
|
timeout = 60
|
|
|
msg = MIMEMultipart("alternative")
|
|
|
- msg["From"] = parmas.email_account
|
|
|
- msg["To"] = parmas.sender_to
|
|
|
- msg["Subject"] = parmas.subject
|
|
|
- msg.attach(MIMEText(parmas.email_content, "plain"))
|
|
|
- msg.attach(MIMEText(parmas.email_content, "html"))
|
|
|
+ msg["From"] = params.email_account
|
|
|
+ msg["To"] = params.sender_to
|
|
|
+ msg["Subject"] = params.subject
|
|
|
+ msg.attach(MIMEText(params.email_content, "plain"))
|
|
|
+ msg.attach(MIMEText(params.email_content, "html"))
|
|
|
|
|
|
ctx = ssl.create_default_context()
|
|
|
|
|
|
- if parmas.encrypt_method.upper() == "SSL":
|
|
|
+ if params.encrypt_method.upper() == "SSL":
|
|
|
try:
|
|
|
- with smtplib.SMTP_SSL(parmas.smtp_server, parmas.smtp_port, context=ctx, timeout=timeout) as server:
|
|
|
- server.login(parmas.email_account, parmas.email_password)
|
|
|
- server.sendmail(parmas.email_account, parmas.sender_to, msg.as_string())
|
|
|
+ with smtplib.SMTP_SSL(params.smtp_server, params.smtp_port, context=ctx, timeout=timeout) as server:
|
|
|
+ server.login(params.email_account, params.email_password)
|
|
|
+ server.sendmail(params.email_account, params.sender_to, msg.as_string())
|
|
|
return True
|
|
|
except Exception as e:
|
|
|
logging.exception("send email failed")
|
|
|
return False
|
|
|
else: # NONE or TLS
|
|
|
try:
|
|
|
- with smtplib.SMTP(parmas.smtp_server, parmas.smtp_port, timeout=timeout) as server:
|
|
|
- if parmas.encrypt_method.upper() == "TLS":
|
|
|
+ with smtplib.SMTP(params.smtp_server, params.smtp_port, timeout=timeout) as server:
|
|
|
+ if params.encrypt_method.upper() == "TLS":
|
|
|
server.starttls(context=ctx)
|
|
|
- server.login(parmas.email_account, parmas.email_password)
|
|
|
- server.sendmail(parmas.email_account, parmas.sender_to, msg.as_string())
|
|
|
+ server.login(params.email_account, params.email_password)
|
|
|
+ server.sendmail(params.email_account, params.sender_to, msg.as_string())
|
|
|
return True
|
|
|
except Exception as e:
|
|
|
logging.exception("send email failed")
|