Contact Forms
聯絡表單建構器:在頁面中嵌入表單,儲存每一筆提交,並透過網站的服務供應商發送郵件。
外掛
Contact Forms
聯絡表單建構器:在頁面中嵌入表單,儲存每一筆提交,並透過網站的服務供應商發送郵件。
說明
在管理後台建立聯絡表單,用一個區塊把它放到任何頁面上,並在內建收件匣中查看每一筆提交。通知郵件透過你的網站已在使用的服務供應商發送——外掛本身從不直接連接任何郵件服務。
線上示範: emdashhq.com/contact — 由此外掛在正式運作的 EmDash 網站上渲染的可用表單。
你將獲得
- 表單 — 建立和編輯表單,管理欄位(text、email、tel、url、number、textarea、select、checkbox),調整欄位順序,無需刪除即可啟用或停用表單。
- 提交收件匣 — 每筆紀錄都儲存在你網站的資料庫中,並附帶其來源頁面;可依表單、狀態或郵件結果篩選;標記為已讀或封存;重新發送通知;複製為 CSV。
- 郵件記錄 — 每次發送嘗試的狀態、耗時和服務供應商回傳的錯誤訊息,讓寄送失敗可以被診斷,而不是悄無聲息。
- 儀表板小工具 — 未讀數量、啟用的表單和最近的提交。
- 防垃圾 — 預設開啟隱藏蜜罐、最短填寫時間偵測和依 IP 的每小時限制;被動偵測不夠用時,可選用 Cloudflare Turnstile。
- 保留期限 — 可選擇刪除早於指定天數的提交和記錄項目。
訪客的位址絕不會出現在公開的表單定義中,表單的收件者也只會出現在管理後台。
安裝
安裝與第一個表單
- 在 EmDash 管理後台開啟 Registry,搜尋 Contact Forms,點擊 Install。它會要求透過你網站的服務供應商發送郵件,並要求存取
challenges.cloudflare.com——只有開啟 Turnstile 時才會用到該主機。 - 開啟 Plugins → Contact forms → Settings,設定預設通知信箱。當某個表單沒有另外指定時,提交內容會發送到這裡。
- 開啟 Forms → New form。為它命名,給出一個 slug(例如
contact),然後新增欄位。每個表單都可以另外指定收件者、主旨範本、按鈕文字和成功訊息。 - 用 Contact form 區塊把表單放到頁面上,並填入 slug。如果你的佈景主題尚未提供該區塊,套件的
site/目錄中有兩個需要複製的檔案——用於 seed 的block-type.json和用於渲染的ContactForm.astro;README 中有詳細說明。 - 在 Settings → Email 中啟用一個服務供應商並發送測試郵件。沒有服務供應商時,提交內容仍會被儲存——只是不會發送郵件,郵件記錄會說明原因。
第一位訪客提交後,提交內容就會出現在 Plugins → Contact forms → Submissions 和儀表板小工具中。
常見問題
提交內容會去哪裡?
儲存到你網站自己的資料庫,位於 Plugins → Contact forms → Submissions。不會向任何第三方傳送資料——唯一的對外呼叫是透過你的服務供應商發送通知郵件,以及(如已啟用)Turnstile 驗證。
沒有設定服務供應商時會發送郵件嗎?
不會,這沒有問題——提交內容仍會被儲存,郵件狀態為 skipped。在 Settings → Email 下啟用服務供應商後,通知和訪客確認郵件就會開始發送,郵件記錄會記下每一次嘗試。
它如何阻止垃圾訊息?
三種被動防護始終開啟:隱藏的蜜罐欄位、最短填寫時間偵測,以及可在設定中調整的依 IP 每小時提交次數限制。如果這還不夠,把 Cloudflare Turnstile 的網站金鑰和私密金鑰貼到外掛設定中,每個表單在儲存任何內容之前都會先經過驗證。
訪客能收到確認郵件嗎?
可以。表單可以使用自己的主旨範本向訪客發送確認郵件。主旨範本可以使用已提交欄位中的值,對通知郵件的回覆會發送到訪客的信箱欄位。
我能把提交內容匯出嗎?
提交頁面可以把目前篩選的檢視複製為 CSV,經過身分驗證的 export 路由也會提供同樣的 CSV,供腳本或 API 權杖使用。
提交內容能自動刪除嗎?
在外掛設定中設定 Keep submissions for (days)。排程任務會刪除早於該期限的提交和郵件記錄項目;0 表示全部保留。
公開表單會暴露收件者位址嗎?
不會。公開的表單路由只回傳欄位、標籤和選項——收件者和通知設定絕不會離開管理後台。
更新日誌
1.1.2
- 必填核取方塊現在會拒絕缺失或無效的值,而不是悄悄通過。
- 在進行任何郵件處理之前先儲存提交:如果服務供應商之後出錯,該列會被標記為失敗,但訊息不會遺失,訪客仍會收到已儲存的回應。
- 提交重試具有冪等性:由 slug、IP 和值產生的指紋可避免重複的列和重複的郵件。
- 被拒絕的提交會透過一次性復原紀錄,用逐欄位錯誤訊息重新填入表單。
- Turnstile 驗證有十秒的期限,並有可設定的故障策略(預設接受)。
- 依 IP 的速率限制是原子的,並且先於 Turnstile 消耗其額度。
cf_欄位鍵保留給提交協定使用,管理後台會拒絕它們。- CSV 匯出和管理後台預覽會中和試算表公式注入。
- 每小時清理現在還會清除過期的速率桶、復原紀錄和冪等宣告。
- 文件:線上示範連結帶有 UTM 參數。
1.1.1
- 註冊表列表新增了圖示、橫幅、螢幕截圖、安裝指南、常見問題和這份更新日誌。外掛本身沒有變更。
1.1.0
- 每個表單可選啟用 Cloudflare Turnstile 驗證:在外掛設定中填入網站金鑰和私密金鑰,提交內容在儲存前會被驗證。
- 新增
network:request權限,僅限challenges.cloudflare.com,用於該項檢查。 - 新增詳細除錯記錄設定,在接入新的郵件服務供應商時很有用。
1.0.0
- 首次發布。管理後台中的表單建構器(八種欄位類型)、提交收件匣、郵件寄送記錄和儀表板小工具。
- 透過
ctx.email.send(),使用網站目前啟用的服務供應商發送通知郵件和訪客確認郵件。 - 預設開啟蜜罐、最短填寫時間和依 IP 每小時的速率限制;可選的舊提交保留期清理。
- 公開的
form和submit路由,以及隨site/提供的 Contact form 頁面區塊。