diff --git a/applications/common/utils/mail.py b/applications/common/utils/mail.py new file mode 100644 index 0000000..eddc666 --- /dev/null +++ b/applications/common/utils/mail.py @@ -0,0 +1,13 @@ +from flask_mail import Message + +from applications.extensions.init_mail import mail + + +# send_mail(subject='title', recipients=['123@qq.com'], content='body') +def send_mail(subject, recipients, content): + try: + message = Message(subject=subject, recipients=recipients, body=content) + mail.send(message) + except Exception as e: + print('邮箱发送出错了') + raise diff --git a/applications/configs/config.py b/applications/configs/config.py index b40fb10..15c61af 100644 --- a/applications/configs/config.py +++ b/applications/configs/config.py @@ -22,6 +22,15 @@ class BaseConfig: SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{MYSQL_USERNAME}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}" # 默认日志等级 LOG_LEVEL = logging.WARN + # + MAIL_SERVER = os.getenv('MAIL_SERVER') or 'smtp.qq.com' + MAIL_USE_TLS = False + MAIL_USE_SSL = True + MAIL_PORT = 465 + MAIL_USERNAME = os.getenv('MAIL_USERNAME') or '123@qq.com' + MAIL_PASSWORD = os.getenv('MAIL_PASSWORD') or 'XXXXX' # 生成的授权码 + # 默认发件人的邮箱,这里填写和MAIL_USERNAME一致即可 + MAIL_DEFAULT_SENDER = ('pear admin', os.getenv('MAIL_USERNAME') or '123@qq.com') class TestingConfig(BaseConfig): diff --git a/applications/extensions/__init__.py b/applications/extensions/__init__.py index 67f315c..87ac09c 100644 --- a/applications/extensions/__init__.py +++ b/applications/extensions/__init__.py @@ -5,6 +5,7 @@ from .init_login import init_login_manager from .init_debug_tool import init_debug_tool from .init_template_directives import init_template_directives from .init_error_views import init_error_views +from .init_mail import init_mail def init_plugs(app: Flask) -> None: @@ -13,3 +14,4 @@ def init_plugs(app: Flask) -> None: init_databases(app) init_template_directives(app) init_error_views(app) + init_mail(app) diff --git a/applications/extensions/init_mail.py b/applications/extensions/init_mail.py new file mode 100644 index 0000000..dd760ee --- /dev/null +++ b/applications/extensions/init_mail.py @@ -0,0 +1,8 @@ +from flask import Flask +from flask_mail import Mail + +mail = Mail() + + +def init_mail(app: Flask): + mail.init_app(app)