# 创建必要的目录 New-Item -ItemType Directory -Path "logs", "email_data", "db" -Force | Out-Null # 检查环境变量文件是否存在,不存在则创建 if (-not (Test-Path ".env")) { Write-Host "创建.env文件..." $secretKey = -join ((48..57) + (65..90) + (97..122) | Get-Random -Count 32 | ForEach-Object {[char]$_}) Set-Content -Path ".env" -Value @" FLASK_ENV=production SECRET_KEY=$secretKey MAIL_DOMAINS=example.com,mail.example.com "@ Write-Host ".env文件已创建" } # 初始化数据库 Write-Host "初始化数据库..." python -c "from app.models import init_db; init_db()" # 启动服务 Write-Host "启动服务..." $smtpPort = if ($env:SMTP_PORT) { $env:SMTP_PORT } else { 25 } # 检查是否以管理员权限运行(25端口需要) $isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) if (-not $isAdmin -and $smtpPort -lt 1024) { Write-Host "警告: 在端口 $smtpPort 运行SMTP服务需要管理员权限" -ForegroundColor Yellow } python run.py --host 0.0.0.0 --port 5000 --smtp-port $smtpPort