# 郵件通知功能優化說明 ## 更新日期:2025-01-28 ## 一、優化內容概述 本次優化主要改善了郵件通知的管理邏輯,實現了郵件通知對象的自動記憶和帶出功能,讓系統更符合實際使用需求。 ## 二、主要變更 ### 1. 資料庫結構調整 - 在 `ts_temp_spec` 表新增 `notification_emails` 欄位 - 用於儲存規範生效時設定的郵件通知對象清單 - 郵件地址以分號 (;) 分隔儲存 ### 2. 功能邏輯改進 #### 規範生效時(Activate) - 使用者輸入郵件通知對象 - 系統自動儲存郵件清單到資料庫 - 發送生效通知郵件 #### 規範停止時(Terminate) - 系統自動從資料庫讀取之前儲存的郵件清單 - 在介面上預先填入這些郵件地址 - 顯示提示訊息告知使用者這是生效時使用的通知對象 - 使用者可以: - 直接使用預設的郵件清單 - 修改郵件清單後再發送 - 清空並重新選擇收件者 #### 規範展延時(Extend) - 系統自動從資料庫讀取之前儲存的郵件清單 - 在介面上預先填入這些郵件地址 - 顯示提示訊息說明可以編輯郵件清單 - 若使用者修改了郵件清單,系統會更新資料庫中的記錄 - 確保後續的通知都會發送給更新後的收件者 ## 三、實施步驟 ### 1. 執行資料庫遷移 ```bash python migrate_add_email_column.py ``` 此腳本會: - 檢查 `notification_emails` 欄位是否已存在 - 如果不存在,自動新增該欄位 - 驗證欄位是否成功新增 ### 2. 重啟應用程式 完成資料庫遷移後,重啟 Flask 應用程式以載入新的功能。 ## 四、使用說明 ### 對於管理員 1. **首次生效**:在啟用規範時,輸入所有需要通知的郵件地址 2. **後續操作**:系統會自動記憶這些地址,無需重複輸入 ### 對於編輯者 1. **終止規範**:可以看到並使用之前設定的通知對象 2. **展延規範**: - 可以保留原有的通知對象 - 也可以根據需要調整通知名單 - 修改後的名單會被儲存供下次使用 ## 五、優點 1. **減少重複輸入**:不需要每次都重新輸入相同的郵件地址 2. **保持一致性**:確保同一規範的相關人員都能收到通知 3. **提供彈性**:允許使用者在需要時修改通知名單 4. **提升效率**:加快操作流程,減少錯誤 5. **改善使用體驗**:更符合實際業務邏輯 ## 六、注意事項 1. 舊的規範資料不會有預存的郵件清單,需要在首次操作時輸入 2. 郵件地址以分號分隔儲存,系統會自動處理格式 3. 如果需要完全清空通知名單,可以在介面上刪除所有地址 ## 七、技術細節 ### 修改的檔案 1. `models.py` - 新增資料庫欄位 2. `routes/temp_spec.py` - 更新郵件處理邏輯 3. `templates/terminate_spec.html` - 新增郵件預填功能 4. `templates/extend_spec.html` - 新增郵件預填功能 5. `migrate_add_email_column.py` - 資料庫遷移腳本 ### 相容性 - 完全向後相容,不影響現有功能 - 舊資料可正常使用,新功能會在首次使用時生效