Files
emailsystem/config.example.py
2025-02-26 10:16:12 +08:00

120 lines
4.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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