From 9f515b56602e6bba1686a98793911650286821e9 Mon Sep 17 00:00:00 2001 From: wangjiacai Date: Tue, 18 Apr 2023 22:07:37 +0800 Subject: [PATCH 1/2] use same cdn provider --- project/templates/base.html | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/project/templates/base.html b/project/templates/base.html index 661d5b2..e9da319 100644 --- a/project/templates/base.html +++ b/project/templates/base.html @@ -7,11 +7,12 @@ Flask - + - + -- 2.45.2 From ae16b99614d6fbe069f4bf982fed11da2b3ccdfb Mon Sep 17 00:00:00 2001 From: wangjiacai Date: Wed, 19 Apr 2023 00:16:19 +0800 Subject: [PATCH 2/2] implement sendmail --- instance/config.yaml | 8 ++++++++ project/__init__.py | 1 + project/smtp.py | 25 +++++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 project/smtp.py diff --git a/instance/config.yaml b/instance/config.yaml index e21bb1e..71defbb 100644 --- a/instance/config.yaml +++ b/instance/config.yaml @@ -22,3 +22,11 @@ openai: API_KEY: MODEL_NAME: gpt-3.5-turbo PROMPT: 你是一个有用的人工智能助理,你尽力确保回答的准确性,避免给出误导信息。 + + +mail: + host: + port: + username: + from: + password: diff --git a/project/__init__.py b/project/__init__.py index e84244b..2090848 100644 --- a/project/__init__.py +++ b/project/__init__.py @@ -27,6 +27,7 @@ def create_app(): app.config['OPENAI_API_KEY'] = conf['openai']['API_KEY'] app.config['OPENAI_MODEL_NAME'] = conf['openai']['MODEL_NAME'] app.config['OPENAI_PROMPT'] = conf['openai']['PROMPT'] + app.config['mail'] = conf['mail'] db.init_app(app) login_manager = LoginManager() diff --git a/project/smtp.py b/project/smtp.py new file mode 100644 index 0000000..ffe5079 --- /dev/null +++ b/project/smtp.py @@ -0,0 +1,25 @@ +import smtplib +import logging +from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText +from email.header import Header +from . import app + +mail_config = app['mail'] +logger = logging.getLogger('waitress') + + +def sendmail(to: str, subject: str, message: str): + if not (mail_config['username'] and mail_config['password']): + logger.error("smtp email account is not configured") + mail = MIMEText(message, "plain") + mail['Subject'] = Header(subject) + mail['From'] = Header(mail_config['from']) + mail['To'] = Header(to) + try: + smtp = smtplib.SMTP_SSL(mail_config['host'], int(mail_config['port'])) + smtp.login(mail_config['username'], mail_config['password']) + smtp.sendmail(mail_config['username'], to, mail.as_string()) + except Exception as e: + logger.error("sendmail error: %s", repr(e)) + smtp.quit() -- 2.45.2