#!/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 # 每个工作进程处理的最大请求数 # 自定义配置 # 在此处添加您的自定义配置