問題
- 表單送出後不穩定:有時成功、有時失敗,使用者只看到「送出失敗」。
- 垃圾信與機器人:沒有節流與驗證,信箱容易被灌爆。
- 缺少紀錄:寄信失敗時不知道原因,也無法追查內容與時間點。
判斷
- 先把輸入做乾淨:欄位驗證、消毒、避免 header injection。
- 再處理防濫用:reCAPTCHA、簡易節流(同 IP/同 session 短時間限制)。
- 寄信一定要可追查:至少要留「寄信結果/錯誤碼/時間/內容摘要」。
方案
- 欄位驗證:必填檢查、Email 格式、長度限制、特殊字元處理。
- 防濫用:honeypot + 節流(例如 30 秒內不可連續送出)+ reCAPTCHA。
- 寄信與回報:寄信成功/失敗都回傳明確訊息,並記錄 server-side log。
- 留存資料:必要時將表單內容寫入資料庫,方便後續客服與稽核。
交付
- 表單規格:欄位、驗證規則、錯誤訊息與防濫用策略。
- 寄信紀錄:成功/失敗、時間、來源 IP、錯誤摘要(可追查)。
- 維運注意事項:SMTP/DNS 設定、寄信測試方式、例行檢查項。
一句話總結:不是把表單做出來就好;要能防濫用、能追查,出問題才有辦法定位。