This commit is contained in:
huangzhenpc
2025-02-26 18:42:59 +08:00
parent 1b81f4eebd
commit ce450544b1
6 changed files with 13 additions and 50 deletions

View File

@@ -1,15 +1,7 @@
from flask import Flask
from .config import Config
from .models import db
def create_app():
app = Flask(__name__)
app.config.from_object(Config)
# 初始化数据库
db.init_app(app)
with app.app_context():
db.create_all()
return app

View File

@@ -1,9 +1,4 @@
class Config:
# 使用 1Panel MySQL 内部连接
SQLALCHEMY_DATABASE_URI = 'mysql://gitea_HN5jYh:mysql_KbBZTN@1Panel-mysql-vjz9:3306/gitea_2l82ep'
# 如果内部连接不通,可以尝试使用外部连接
# SQLALCHEMY_DATABASE_URI = 'mysql://gitea_HN5jYh:mysql_KbBZTN@rnpanel.586vip.cn:3306/gitea_2l82ep'
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 使用 1Panel Redis 内部连接
REDIS_URL = "redis://1Panel-redis-r3Pz:6379/0"
# 如果内部连接不通,可以尝试使用外部连接

View File

@@ -1,11 +0,0 @@
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Email(db.Model):
id = db.Column(db.Integer, primary_key=True)
subject = db.Column(db.String(255))
sender = db.Column(db.String(255))
recipient = db.Column(db.String(255))
body = db.Column(db.Text)
timestamp = db.Column(db.DateTime, server_default=db.func.now())

View File

@@ -5,7 +5,6 @@ import logging
from email.parser import BytesParser
from email.policy import default
from datetime import datetime
from .models import db, Email
import redis
import smtpd
import asyncore
@@ -23,23 +22,6 @@ logger = logging.getLogger('smtp_server')
redis_client = redis.from_url(Config.REDIS_URL)
def receive_email():
# 这里实现邮件接收逻辑
# 假设我们从某个 SMTP 服务器接收邮件
# 解析邮件并存储到 Redis
# 示例:
raw_email = b'...' # 这里应该是接收到的原始邮件内容
email = BytesParser(policy=default).parsebytes(raw_email)
email_data = {
'subject': email['subject'],
'sender': email['from'],
'recipient': email['to'],
'body': email.get_body(preferencelist=('plain')).get_content()
}
# 将邮件信息存储到 Redis
redis_client.hmset(f'email:{email_data['subject']}', email_data)
class CustomSMTPServer(smtpd.SMTPServer):
def process_message(self, peer, mailfrom, rcpttos, data):
try: