增强:添加批量注册功能和支持文件

This commit is contained in:
huangzhenpc
2025-02-26 10:16:12 +08:00
parent 71c9653d54
commit a9e29c9cf5
11 changed files with 1392 additions and 192 deletions

120
config.example.py Normal file
View File

@@ -0,0 +1,120 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
邮件系统配置文件示例
复制此文件为 config.py 并根据实际情况修改配置
"""
import os
import logging
from datetime import timedelta
# 基础配置
DEBUG = True # 是否启用调试模式
SECRET_KEY = "请替换为随机生成的安全密钥" # Flask应用密钥
TESTING = False # 是否为测试环境
# 目录配置
BASE_DIR = os.path.abspath(os.path.dirname(__file__))
TEMP_DIR = os.path.join(BASE_DIR, "temp") # 临时文件目录
UPLOAD_DIR = os.path.join(BASE_DIR, "uploads") # 上传文件目录
ATTACHMENT_DIR = os.path.join(BASE_DIR, "attachments") # 邮件附件存储目录
EMAIL_STORAGE_DIR = os.path.join(BASE_DIR, "emails") # 原始邮件存储目录
# 确保目录存在
for dir_path in [TEMP_DIR, UPLOAD_DIR, ATTACHMENT_DIR, EMAIL_STORAGE_DIR]:
os.makedirs(dir_path, exist_ok=True)
# 数据库配置
# SQLite配置示例
DB_TYPE = "sqlite"
DB_PATH = os.path.join(BASE_DIR, "email_system.db")
SQLALCHEMY_DATABASE_URI = f"sqlite:///{DB_PATH}"
# MySQL配置示例 (取消注释并修改配置以使用MySQL)
# DB_TYPE = "mysql"
# MYSQL_HOST = "localhost"
# MYSQL_PORT = 3306
# MYSQL_USER = "emailsystem"
# MYSQL_PASSWORD = "your_password"
# MYSQL_DB = "emailsystem"
# SQLALCHEMY_DATABASE_URI = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}"
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = False # 是否显示SQL语句 (调试用)
# SMTP服务器配置
SMTP_HOST = "0.0.0.0" # SMTP服务器地址
SMTP_PORT = 25 # SMTP服务器端口
SMTP_SSL_PORT = 465 # SMTP SSL端口 (如需启用)
SMTP_USE_SSL = False # 是否启用SSL
SMTP_USERNAME = None # SMTP用户名 (如需认证)
SMTP_PASSWORD = None # SMTP密码 (如需认证)
SMTP_MAX_MESSAGE_SIZE = 20 * 1024 * 1024 # 最大邮件大小 (20MB)
SMTP_TIMEOUT = 60 # SMTP超时时间 (秒)
# API配置
API_PREFIX = "/api" # API前缀
API_DEFAULT_LIMIT = 10 # 默认分页大小
API_MAX_LIMIT = 100 # 最大分页大小
API_RATE_LIMIT = "60/minute" # API速率限制
API_VERSION = "1.0.0" # API版本
# 监控和日志配置
LOG_LEVEL = logging.INFO # 日志级别
LOG_FILE = os.path.join(BASE_DIR, "email_system.log") # 日志文件路径
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" # 日志格式
LOG_MAX_SIZE = 10 * 1024 * 1024 # 日志文件最大大小 (10MB)
LOG_BACKUP_COUNT = 5 # 日志文件备份数
# Web界面配置
WEB_HOST = "0.0.0.0" # Web服务器地址
WEB_PORT = 5000 # Web服务器端口
WEB_USE_SSL = False # 是否启用SSL
WEB_SSL_CERT = None # SSL证书路径
WEB_SSL_KEY = None # SSL密钥路径
# 邮件系统配置
ALLOWED_DOMAINS = ["example.com", "test.com"] # 允许接收的域名列表
AUTO_CREATE_DOMAIN = True # 是否自动创建域名
AUTO_CREATE_MAILBOX = True # 是否自动创建邮箱
DEFAULT_ENCODING = "utf-8" # 默认编码
# 缓存配置
CACHE_TYPE = "simple" # 缓存类型 (simple, redis, memcached等)
CACHE_DEFAULT_TIMEOUT = 300 # 缓存默认超时时间 (秒)
# Redis配置 (如使用Redis缓存)
# REDIS_HOST = "localhost"
# REDIS_PORT = 6379
# REDIS_PASSWORD = None
# REDIS_DB = 0
# 验证码提取配置
VERIFICATION_CODE_PATTERNS = [
r"验证码[:\s]*([0-9]{4,6})", # 中文验证码格式
r"verification code[:\s]*([0-9]{4,6})", # 英文验证码格式
r"code[:\s]*([0-9a-zA-Z]{4,8})", # 通用验证码格式
r"([0-9]{6})" # 纯数字验证码
]
# 邮件清理配置
EMAIL_RETENTION_DAYS = 30 # 邮件保留天数
EMAIL_CLEANUP_INTERVAL = 60 * 60 * 24 # 邮件清理间隔 (秒)
ATTACHMENT_MAX_SIZE = 50 * 1024 * 1024 # 附件最大大小 (50MB)
# 安全配置
TRUSTED_HOSTS = ["localhost", "127.0.0.1"] # 信任的主机列表
CORS_ORIGINS = ["http://localhost:3000", "http://localhost:5000"] # CORS允许的源
JWT_SECRET_KEY = "请替换为随机生成的JWT密钥" # JWT密钥
JWT_ACCESS_TOKEN_EXPIRES = timedelta(hours=1) # JWT访问令牌过期时间
JWT_REFRESH_TOKEN_EXPIRES = timedelta(days=30) # JWT刷新令牌过期时间
# 性能配置
WORKER_PROCESSES = os.cpu_count() or 4 # 工作进程数
WORKER_THREADS = 2 # 每个进程的线程数
MAX_REQUESTS = 1000 # 每个工作进程处理的最大请求数
# 自定义配置
# 在此处添加您的自定义配置