一個基於 Node.js 的 SMTP 輪替發信系統,具備管理後台和自動輪替功能。
- 🚀 多 SMTP 配置管理
- 🔄 智能輪替發信
- 📊 月使用量追蹤
- 🎨 美觀的 Flowbite UI
- 📅 Cron Job 月重置
- 🛡️ 自動跳過超額 SMTP
- 安裝依賴套件:
npm install
- 初始化資料庫:
npm run db:push
- 啟動服務:
npm run dev
訪問 http://localhost:3000
進入 SMTP 管理後台:
- 新增/編輯 SMTP 配置
- 監控使用量和狀態
- 設定每月發信額度
POST /send-email
Content-Type: application/json
{
"to": "recipient@example.com",
"subject": "測試郵件",
"text": "純文字內容",
"html": "<h1>HTML 內容</h1>"
}
每月 1 號重置使用量:
0 0 1 * * curl -X GET http://your-domain.com/cronjob?auto=true
或手動訪問:http://localhost:3000/cronjob
id
: 主鍵name
: SMTP 名稱host
: 主機地址port
: 連接埠username
: 使用者名稱password
: 密碼maxMonthlyQuota
: 月發信額度currentUsage
: 當前使用量isActive
: 是否啟用
系統會自動:
- 選擇可用的 SMTP(未超額且啟用)
- 按使用量排序,優先使用較少的
- 發信成功後更新使用量
- 超額的 SMTP 自動暫停使用
DATABASE_URL="file:./dev.db"
PORT=3000
GET /
- 管理後台首頁GET /cronjob
- Cron Job 頁面GET /api/smtp-configs
- 取得所有 SMTP 配置POST /api/smtp-configs
- 新增 SMTP 配置PUT /api/smtp-configs/:id
- 更新 SMTP 配置DELETE /api/smtp-configs/:id
- 刪除 SMTP 配置POST /send-email
- 發送郵件POST /api/reset-monthly-usage
- 重置月使用量# Smtp-api