通知管道
手機連線步驟見連接 App。
在控制台設定
- 開啟通知,選擇 Bark、Pushover、Webhook 或 Mailwake App。
- 填寫下方對應管道的欄位。使用 Mailwake App 時先配對手機,再選定接收手機。
- 設定預覽、通知語言和重試次數。重試次數為 0 時只嘗試一次。
- 儲存後明確點選傳送測試通知,檢查手機或 Webhook 接收端,並檢視投遞結果。
這些設定對所有信箱生效。已入隊任務按已有投遞計劃處理,修改後的行為請用一封新郵件驗證。
通道設定
透過 /api/v1/settings/delivery 攜帶當前
revision
設定全域性通道。通道、預覽、重試次數和通知語言對所有信箱生效。憑據加密且只寫;目標保持原值時,省略憑據欄位可保留已存值;修改
Bark 位址須重新輸入裝置 Key。
| 通道 | 引數 | 憑據 |
|---|---|---|
bark |
bark.endpoint,預設
https://api.day.app
|
bark.key |
native |
預設使用官方生產推播中繼服務;透過
MAILWAKE_RELAY_URL 覆蓋;在 App 授權中配對手機
|
本機生成並加密儲存的哨站身分 |
pushover |
無 |
pushover.token、pushover.user
|
webhook |
HTTPS,可帶查詢引數 |
webhook.url、webhook.secret(至少
32 個非空白字元)
|
Webhook URL 的路徑或查詢引數可能包含憑據,因此整個 URL 只寫。preview
僅支援 off 或 subject;retry_count
為 0–9,預設 0;language 支援
9 種語言及其地區別名,預設英文。subject 下 Bark/Pushover
內文只顯示主旨;Webhook 保留結構化的 sender 與 subject,message
只顯示主旨。off
或主旨為空時,內文使用所選通知語言的“收到新郵件”文案。標題保持
{显示名称} · {文件夹},Bark group
使用同一個截斷後的標題;測試通知文案保持原值。API 輸入
sender_subject 返回 400
config_preview_invalid。第三方通道從
subject 切換為
off
時,同一事務清理所有待處理及失敗記錄的寄件者與主旨;後續入隊也遵循已儲存的預覽策略。原生通道始終記錄寄件者與主旨,並保留第三方預覽偏好。
Bark 的郵件通知和測試通知均按 Bark App 的歷史儲存設定保留記錄。
Webhook 格式
哨站向設定的地址 POST JSON,不跟隨重新導向:
{
"version": 1,
"id": "3f9c…",
"test": false,
"mailbox_id": "mbx_example",
"account": "工作邮箱",
"folder": "Clients",
"sender": "anna@example.org",
"subject": "Re: Q4 proposal",
"received_at": "2026-09-28T10:32:00Z",
"title": "工作邮箱 · Clients",
"message": "Re: Q4 proposal"
}
mailbox_id 為穩定信箱 ID,account
為入隊時的顯示名稱。Bark、Pushover、Webhook
普通通知在所有支援語言中的標題統一為“{顯示名稱} ·
{資料夾}”。信箱改名或刪除後,已入隊任務保留原來的來源資訊。測試通知使用獨立文案並省略信箱欄位。
sender、subject 僅在
subject 預覽下出現;title、message
是已本機化的展示文字,可直接轉發給 ntfy、Gotify
等服務。關閉預覽後仍會傳送顯示名稱和資料夾,請使用適合提供給通知服務商的名稱。
| 請求頭 | 含義 |
|---|---|
X-Mailwake-Event |
事件 ID,與內文 id 相同;重試時不變,可用於去重
|
X-Mailwake-Timestamp |
傳送時的 Unix 秒 |
X-Mailwake-Signature |
sha256= 加
HMAC-SHA256(secret,
"<timestamp>.<原始正文>")
的十六進位制
|
接收端用同一金鑰計算簽章並以常量時間比較,同時拒絕時間戳偏差超過 5 分鐘的請求:
import hashlib, hmac, time
def verify(secret: bytes, timestamp: str, body: bytes, signature: str) -> bool:
expected = "sha256=" + hmac.new(secret, timestamp.encode() + b"." + body, hashlib.sha256).hexdigest()
return abs(time.time() - int(timestamp)) <= 300 and hmac.compare_digest(expected, signature)
返回任意 2xx 視為接收成功;429 與 5xx 按重試設定處理,其他狀態結束本輪並記錄失敗。
儲存通知設定只校驗欄位、地址、配對狀態與設定版本,直接儲存。需要驗證投遞時手動點選傳送測試通知。Native 測試使用推播中繼服務固定內容的免費測試介面,與 App 測試共享額度;正式郵件仍要求 Native Push 權益。
Markdown · AGPL-3.0-only · Mailwake 貢獻者