feat(email): add SMTP security modes (starttls/ssl/none) with sensible default ports; add /notify_test endpoint; support ALWAYS_NOTIFY_ON_STARTUP to force first-run notification

chore(docker): run enhanced_crawler.py as entrypoint

ops(compose): load env via env_file and remove hardcoded secrets

docs: update README and .env.template for SMTP and startup notification
This commit is contained in:
2025-09-03 21:32:50 +08:00
parent 852f206d2e
commit 099f156e6f
5 changed files with 107 additions and 37 deletions

View File

@@ -28,13 +28,17 @@ barrons-crawler/
# 基本設定
CHECK_INTERVAL=300
LOG_LEVEL=INFO
ALWAYS_NOTIFY_ON_STARTUP=false # 啟動後第一次必定寄當前清單
# 電子郵件通知設定(Gmail 範例
EMAIL_SMTP_SERVER=smtp.gmail.com
EMAIL_SMTP_PORT=587
EMAIL_FROM=your_email@gmail.com
# 電子郵件通知設定(SMTP
# 對 Gmail建議使用應用程式密碼
# 對學校/企業信箱:請依管理者提供之 SMTP 主機與加密方式設定
EMAIL_SMTP_SERVER=smtp.gmail.com # 例mail.ntust.edu.tw
EMAIL_SMTP_PORT=587 # starttls 常用 587ssl 常用 465
EMAIL_SMTP_SECURITY=starttls # starttls | ssl | none
EMAIL_FROM=your_email@gmail.com # 例m10605505@mail.ntust.edu.tw
EMAIL_TO=notification@gmail.com
EMAIL_USERNAME=your_email@gmail.com
EMAIL_USERNAME=your_email@gmail.com # 有些伺服器需填完整信箱
EMAIL_PASSWORD=your_app_specific_password
# Slack Webhook可選
@@ -55,10 +59,19 @@ docker-compose logs -f barrons-crawler
## 📋 詳細設定選項
### 電子郵件設定(Gmail
1. 開啟 Gmail 的兩步驟驗證
2. 生成應用程式密碼https://myaccount.google.com/apppasswords
3.`.env` 中使用應用程式密碼,不是一般密碼
### 電子郵件設定(SMTP
1. 若使用 Gmail
- 開啟兩步驟驗證
- 生成應用程式密碼https://myaccount.google.com/apppasswords
-`.env` 使用應用程式密碼,而非一般密碼
2. 若使用學校/企業郵件(如 NTUST
- 向管理者確認 SMTP 主機、連接埠與加密方式starttls 或 ssl
- `EMAIL_USERNAME` 可能需要填完整信箱(例如 `m10605505@mail.ntust.edu.tw`
### 啟動後首次通知行為
- 環境變數 `ALWAYS_NOTIFY_ON_STARTUP`
- `true/1/yes`:服務啟動完成後,第一次檢查即使沒有新內容也會寄出目前清單;之後只在有更新時寄出
- `false`(預設):只有在偵測到新內容時才寄出
### Slack 通知設定
1. 建立 Slack App: https://api.slack.com/apps
@@ -265,4 +278,4 @@ services:
3. **定期備份資料**
4. **監控資源使用情況**
5. **設定適當的通知渠道**
6. **遵守網站使用條款**
6. **遵守網站使用條款**