結論:寄送層優先選 Amazon SES
成本 + 輕量優先
保留 CRM 與電子報管理應用,實際寄信交給 AWS。listmonk 用 SES 的 SMTP endpoint;你不用架 SMTP server。
TypeScript + 現成 MCP 優先
trycompai/crm + Plunk 自架應用 + Amazon SES
官方 MCP 與 TS 程式碼方便 Agent 延伸;Plunk 直接用 SES API 寄信。郵件基礎設施由 AWS 維運,但 Plunk worker 等仍需自己管理。
連電子報應用也不想維運
trycompai/crm + Plunk Hosted 或 Resend
少了電子報應用的自架工作。Plunk 按使用量;Resend Marketing 按聯絡人,且有官方遠端 MCP。單位寄送成本與平台功能需一起評估。
不自架 SMTP,仍可以自架開源電子報應用
| 層次 | 誰負責 | 你需要維護什麼 |
|---|---|---|
| CRM/會員資料 | trycompai/crm | 聯絡人、公司、標籤與業務資料。另補訂閱同意紀錄;CRM contact 存在不代表允許寄電子報。 |
| 電子報管理 | listmonk 或 Plunk | 名單、內容、排程、取消訂閱與寄送任務。可以不使用 UI,由 Agent 經 API/MCP 管理。 |
| 實際郵件投遞 | Amazon SES 等第三方服務 | 供應商處理 SMTP 投遞、寄件 IP 及郵件伺服器。你管理帳號、DNS 驗證、用量與名單信譽。 |
| Agent 控制層 | 自己的 TypeScript adapter/既有 Agent runtime | 受眾篩選、寄送上限、去重、工作紀錄與同步。不必對每封信都呼叫模型。 |
連到 email-smtp.<region>.amazonaws.com 是使用 AWS 託管的 SMTP 服務,不是自架 SMTP。若你連 SMTP 協定都不想碰,Plunk 的 SES API 路徑更直接;listmonk 預設的 SMTP 路徑則更容易換成其他供應商。[4][14]
前一份報告的「自架 listmonk/Plunk」是指管理應用,不代表要維運 Postfix、寄件 IP 或 mail server。本次已把這兩種成本分開。
第三方寄信服務比較
| 服務 | 電子報適用性 | 價格與計費重點(USD) | Agent/整合能力 | 依你的需求評估 |
|---|---|---|---|---|
| Amazon SES | 適用;需帳戶通過 production access。 | à la carte:$0.10/1,000;Essentials:$0.16/1,000(本報告量級)。另有資料與選配費。[1] | API/AWS SDK/CLI/SMTP;自包受限 MCP。Plunk 原生 SES backend,listmonk 可直接連 SMTP。 | 成本首選。帳戶審核、DNS、事件處理需設好;不是開帳號後立即無限制群發。 |
| Plunk Hosted | 適用;有 campaigns、contacts、segments。 | $0.001/封,付費按使用量;帶附件按雙倍 credits,另計 inbound。[11] | 官方 MCP;可直接管電子報。[12] | 省維運的首選之一。不要再把自己的 SES 費用加進 Hosted 帳單估算。 |
| Resend | 適用;以 Marketing / Broadcasts 評估。 | Marketing:5K contacts $40、10K $80、50K $250/月;不按寄出封數限制。交易型價格另算。[21] | 官方 TS SDK、遠端 MCP/OAuth,涵蓋 broadcasts、contacts、webhooks。[23] | 非常符合 Agent 操作偏好。可能直接取代電子報平台;不是 SES 單純 relay 的同級比較。 |
| SMTP2GO | 適用於有 permission 的名單。[25] | 100K 封/月:$75。入門價官方頁主文與 metadata 不一致($10 / $15),下單前核對,本文不以其作低量精確排名。[24] | SMTP / API;listmonk 送信可接,退信/客訴回寫需另外整合。 | 想避免 AWS 設定時的 relay 候選。支援服務較直觀,但單價較 SES 高。 |
| Elastic Email | 可評估 API / SMTP 與行銷用途;依所選產品與帳戶審核。 | 50K 封/月:Starter $19、Pro $49;價格頁將 webhooks 列於 Pro。[28] | API / SMTP;Agent 需 adapter。不要只挑低價方案卻忽略事件回寫。 | 低價備選。正式選型先確認所需 webhook/suppression 權限包含在方案。 |
| Postmark | 使用 Broadcast Message Stream,與交易型信分開。[26] | 官方資料列 $15/月起;高量價格依目前方案/volume selector 核對,不沿用舊比較表。[27] | API / broadcast SMTP;有 unsubscribe 同步機制。 | 重視支援、message stream 分離時可評估;不是最低寄送成本首選。 |
| Mailgun | 可評估許可式行銷寄送;需處理退訂與供應商政策。 | 分方案與發送量;本次未完整核實動態價格,不用二手數字補齊。[29] | SMTP / HTTP API;需自己整合到 CRM 與 campaign 管理。 | 成熟候選,但目前沒有證據顯示比 SES 更符合你的成本目標。 |
| Cloudflare Email Service | 本次排除電子報用途。 | Workers Paid 才可一般對外寄送:每月 3K 含額度,超額 $0.35/1K;Workers 最低 $5/月。[7][8] | 已具 API、Workers 與 SMTP;用途仍限 transactional,Sending 為 Beta。[9][10] | 可做 OTP、通知等另一條路;不因便宜就用來送 marketing newsletter。[6] |
| Zoho ZeptoMail | 排除電子報用途。 | 即使交易型郵件價格有吸引力,也不能用不同用途的低價方案比較電子報。 | API / SMTP 偏 transactional。 | 官方明列 bulk、newsletter 等不支援。[30] |
真正的月費:按封數與按聯絡人分開算
查核日:2026-09-28(Asia/Taipei)。以下為公開 USD 標價的基礎費推算,排除稅、匯差、信用卡費、免費/新戶抵用金、附件/資料量、模型用量、應用主機與監控。封數是收件者投遞次數:10,000 人寄 4 期就是 40,000 封。
| 寄送服務/方案 | 每月 10K 封 | 50K 封 | 100K 封 | 1M 封 | 適用範圍 |
|---|---|---|---|---|---|
| Amazon SES à la carte | $1.00 | $5.00 | $10.00 | $100.00 | 僅基礎寄送;不含 VDM 等選配。 |
| Amazon SES Essentials | $1.60 | $8.00 | $16.00 | $160.00 | 基礎寄送與方案內功能;仍有其他可能費項。 |
| Plunk Hosted(無附件) | $10.00 | $50.00 | $100.00 | $1,000.00 | 付費單價 × 封數,不減免費 tier 額度。 |
| SMTP2GO | 入門價格有差異 | 依 selector 核對 | $75.00 | 依 selector 核對 | 不插值推估未查證方案。 |
| Elastic Email | 依方案最低費 | Starter $19 / Pro $49 | 依 selector 核對 | 依 selector 核對 | Starter / Pro 功能不同;非相同能力最低價。 |
| 相同電子報情境 | Amazon SES à la carte | Amazon SES Essentials | Plunk Hosted | Resend Marketing |
|---|---|---|---|---|
| 5K 位聯絡人 × 每月 4 期 = 20K 封 | $2.00 | $3.20 | $20.00 | $40/月 |
| 10K 位聯絡人 × 每月 4 期 = 40K 封 | $4.00 | $6.40 | $40.00 | $80/月 |
| 50K 位聯絡人 × 每月 4 期 = 200K 封 | $20.00 | $32.00 | $200.00 | $250/月 |
| 50K 位聯絡人 × 每月 20 期 = 1M 封 | $100.00 | $160.00 | $1,000.00 | $250/月 |
Resend Marketing 按帳戶計費聯絡人數選級距,而非只按本次受眾人數;上表假設帳戶僅有這些計費聯絡人。其官方價格表說 marketing 不按封數設限,但仍受帳戶、速率與使用政策約束。此列不把免費方案及其他用量算入。[21]
**我的選擇:**只要基礎投遞、已在自己的程式做監控,先評估 à la carte;想要方案內的 SES deliverability 工具,可評估 Essentials。以 100K 封為例差 $6/月,應依可用功能選,不必為微小寄送價差增加維護工作。
最便宜的寄送 API,不一定是最便宜的完整系統
你的總成本應計為:第三方寄送費 + 電子報應用/DB/queue + CRM/Agent runtime + 備份監控 + 維護時間。SES 不需要 EC2 才能使用;程式可以在 Vercel 或其他平台呼叫它。若自架郵件管理應用,主機費是應用的成本。
| 完整方案 | 新增需維運的部分 | 成本結構 | 建議 |
|---|---|---|---|
| trycompai/crm + listmonk + Amazon SES | listmonk 服務、PostgreSQL、TS adapter/sync job。 | 共通 CRM 成本 + listmonk infra + SES。 | 成本與服務數平衡首選;不必修改 Go 核心。 |
| trycompai/crm + Plunk 自架 + Amazon SES | Plunk API、worker、Redis、Postgres、儲存與相關設定。 | 共通 CRM 成本 + Plunk infra + SES。 | 更適合想由 Agent 深度改 TS 郵件產品的人。[13] |
| trycompai/crm + Plunk Hosted | CRM adapter、同意帳本、同步。 | 共通 CRM 成本 + Hosted 付費用量。 | 低寄量時通常值得比較,避免為省數美元多養一套服務。 |
| trycompai/crm + Resend Marketing | CRM adapter、同意同步與供應商整合。 | 共通 CRM 成本 + contact 級距與選配。 | 原生遠端 MCP 減少接線;可取代 Plunk/listmonk,未必需要全部疊加。 |
| trycompai/crm + 自製 TS campaign engine + Amazon SES | 自己做排程、模板、退訂、速率、retry、回寫、報表。 | 較少外部應用,但自有程式與測試負擔最大。 | 長期客製路線;不作 MVP 預設,Agent 寫得快不代表營運邏輯免費。 |
「穩定」與「到達率」要分三件事看
| 指標 | 真正代表什麼 | 如何評估 |
|---|---|---|
| API/服務可用性 | 你能不能將任務交給供應商。 | SES 公開 SLA 包含每區域月可用性至少 99.9% 的服務承諾,適用排除條件與 credits 規則;不等於實測 uptime。[2] |
| 投遞成功率 | 對方 mail server 接受了郵件。 | delivery event 不是收件匣證明。追蹤 hard bounce、soft bounce、deferred、complaint 及延遲。 |
| Inbox placement | 信落在收件匣、分類頁籤或垃圾信。 | 沒有可通用於你這份名單的可靠單一排名。應對 Gmail、Outlook、Yahoo 與你的企業客戶信箱分開試寄。 |
**本報告沒有把廠商宣稱的 99% delivery 當成 99% 進收件匣。**也沒有根據單次第三方排行榜聲稱某供應商到達率最高。SES 是成本與能力上的推薦;真正結果仍由寄件網域信譽、內容、名單品質、寄量變化與對方收信規則共同決定。
| 你要落實的項目 | 對這套架構的做法 |
|---|---|
| SPF / DKIM / DMARC | 驗證寄件網域與 From alignment;按供應商要求設定 custom MAIL FROM。寄送子網域與日常員工信箱分開;保留原收件 MX,不因要寄信而重設整個公司的收信服務。 |
| 行銷與交易型分流 | 使用如 news.example.com / notify.example.com,不混用電子報與密碼重設的名單、queue 或頻率。子網域有助管理,但不保證聲譽完全隔離。 |
| 可用的退訂 | 信內清楚退訂連結 + one-click headers;Agent 或系統不能再把退訂者同步成 subscribed。驗證實際送出的 MIME,不只看模板。 |
| 名單與 ramp-up | 先寄近期主動互動且已 opt-in 的小批名單,按結果逐步增加;不要匯入未知同意狀態的 CRM 聯絡人。 |
| 監控與停寄 | 追蹤每個 mailbox provider 的結果。自行設定例如 hard bounce >2% 觸發檢查、complaint ≥0.1% 暫停擴量;小樣本也要看件數,這是建議內控,不是所有供應商統一規則。 |
| IP 選擇 | 先評估共享 IP;零星電子報不因加購 dedicated IP 就自動提升到達率。專用 IP 的量、持續性與暖機需另評估。 |
| 省錢與低噪音報表 | 圖片用 HTTPS 外部資源、附件改下載連結;開信像素可能被代理/預載影響,用點擊、退訂、客訴與實際回應一起判讀。 |
建議落地架構:Agent 管理,SES 投遞
Codex / Claude Code
開發、查詢、下達電子報任務
排程 / Agent runtime
持續執行已授權的流程
↓ 共用受限工具與業務規則 ↓
TypeScript Marketing Service / MCP
同意狀態 · 預覽 · 用量限制 · job ID · 審計
↓
trycompai/crm
聯絡人資料主來源
listmonk 或 Plunk
電子報草稿、排程、退訂
listmonk → SES SMTP / Plunk → SES API
Amazon SES
第三方寄件服務:不自行管理 SMTP server
SES SNS / events → 去重處理 → suppression、訂閱及報表回寫
| 整合路徑 | 已確認能力 | 仍要補的工作 |
|---|---|---|
| trycompai/crm → TS tools | 已有 /rest、OpenAPI、API key security scheme。[19] | 薄型 MCP、行銷同意帳本、contactId / email 版本映射。不要以 UI 操作當主要介面。 |
| TS tools → listmonk | 有 REST API;可以把 campaign 管理與 send 權限分開。[17][34] | 自己封裝明確業務 tools,限制任意 SQL/廣泛 API 能力;退訂同步與狀態對帳。 |
| listmonk → Amazon SES | 接 SES SMTP;官方有 SES SNS bounce webhook 設定。[16] | 設定 bounce/complaint 通知、TLS、quota / rate limit,測試兩種事件均正確封鎖。不同 SES notification 格式須依官方設定配對。 |
| TS tools → Plunk | 官方 MCP 支援 contacts、segments、campaigns;目前為 stdio 路徑。[12] | 跨系統規則仍放自己的 service;外部 HTTP MCP 如有需要另接,不預設已有。 |
| Plunk → Amazon SES | 原始碼使用 AWS SES client。[14] | 正確配置 AWS region、IAM、configuration sets 與事件;不能假設換任意 SMTP host 就能改掉 Plunk backend。 |
| Plunk Hosted / Resend | 由平台管理投遞服務;可用其 campaign / broadcast API。 | 通常不再另外接自己的 SES 帳戶付費。需要 BYO SES 時必須看供應商是否明確支援,不能想當然。 |
Agent-only 的工作方式與最小資料模型
保留「模型做判斷,程式做保證」的分工。Agent 可以寫內容、選合適名單與設定排程;發送額度、同意檢查、供應商速率、重試與去重由程式強制。不用讓每封電子報都經過 LLM 或 MCP 一次。
| 建議工具(待實作) | 可做什麼 | 程式必須保證 |
|---|---|---|
| preview_audience | 輸入受限篩選條件,回傳人數與名單版本。 | 只含可寄訂閱者;隱藏不必要個資;禁止隨意執行 SQL。 |
| create_campaign_draft | 產生草稿與 HTML/純文字內容。 | 固定 content hash、audience version 與 sender;電子報包含可用退訂。 |
| schedule_campaign | 在已授權範圍排程。 | recipient cap、每日上限、成本預估、寄件網域與 operation ID;狀態不明不盲目重寄。 |
| get_campaign_health | 彙總 sent / delivered / bounce / complaint/遲延。 | 區分供應商接受、投遞成功與 inbox placement;不編造到達率。 |
| unsubscribe_contact | 確切 ID/email 退訂。 | 立即影響下次實際寄送;CRM 舊同步不得覆蓋。 |
| pause_campaign | 停止還沒提交的任務。 | 已寄出的郵件不能收回;明確回傳已寄與待寄數量。 |
| 資料 | 最小責任 |
|---|---|
| ContactMapping | CRM id ↔ provider id;email 版本、封存與更換地址。 |
| ConsentEvent / Subscription | 保存同意來源、topic/list、時間與撤回;CRM 既有 Contact 不能替代。[35] |
| CampaignRun / DeliveryAttempt | operationId、provider messageId/campaignId、內容版本、attempt 與狀態。 |
| Outbox / InboxEvent | 避免 DB 成功但 job 遺失;處理事件重複、亂序與重啟恢復。 |
| Suppression / Audit | 退訂、hard bounce、complaint 的阻擋規則與每次操作身份。 |
SES 上線清單:先通過這些,再擴量
| 階段 | 具體工作 | 通過條件 |
|---|---|---|
| 1 · 確認用途、區域、方案 | 選支援需求的 SES region,確認 à la carte/Essentials,設定預算與告警。 | 價格與區域已記錄;別因身在台灣就假設必須用特定區域,先看部署、支援與資料需求。 |
| 2 · 網域與 production access | 驗證 domain、DKIM、MAIL FROM / DMARC;申請 production access,清楚描述許可式電子報用途。 | Sandbox 預設僅驗證收件者、200 封/24 小時、1 封/秒;核准不保證無限速,需確認帳戶實際 quota。[3] |
| 3 · 連線與權限 | listmonk 使用 SES SMTP region credentials;Plunk 使用受限 IAM SES API credentials。 | SMTP credentials 不等於一般 AWS access keys,且按 region 區分;TLS、寄件 identity 都成功。[4] |
| 4 · 事件與退訂 | 設定 SES bounce / complaint 通知,接回平台與 CRM;測 one-click unsubscribe。 | 模擬退信、客訴、退訂都能阻擋後續行銷信;恢復重試不再次 opt-in。 |
| 5 · 小量驗收 | 只對已授權的內部種子帳號寄測試,檢查 Gmail、Outlook、Yahoo 與企業信箱。 | From / DKIM / SPF / DMARC 對齊、連結正確;紀錄落點與延遲。此測試仍不保證整份名單表現。 |
| 6 · 逐步放量 | 近期活躍訂閱者先行,依實際 quota 控制每秒寄量。 | 事件回寫、重啟恢復、超額停止及混合失敗情境都通過;穩定後再提高每日受眾。 |
以 100K 封為例,若核准速率只有 10 封/秒,光提交就至少約 2.8 小時,還未算 retry 與對方收信延遲。因此「月量足夠」不代表可以在幾分鐘內完成整份電子報。這是算術示例,不是 SES 給你的實際限額。
最終選型與下一步
| 你的優先順序 | 選擇 | 理由 |
|---|---|---|
| 最低寄送成本 + 維運輕量 | trycompai/crm + listmonk + Amazon SES | 採 SES à la carte 或視需求用 Essentials;自包 TS MCP,保留成熟 campaign 功能。 |
| TypeScript 改功能 + 官方 MCP | trycompai/crm + Plunk 自架應用 + Amazon SES | 符合語言偏好,不自架 SMTP;接受額外 worker/Redis 等服務。 |
| 最快開始 + 不維運電子報應用 | trycompai/crm + Plunk Hosted | 按封數計價、現成 MCP;低寄量時總成本可能更合理。 |
| 遠端 MCP / OAuth + 高寄信頻率 | trycompai/crm + Resend Marketing | 用聯絡人數 × 寄送頻率估算;可不再另外放一套 listmonk/Plunk。 |
| 想用 Cloudflare | Cloudflare Email Service 僅列交易型候選 | 電子報仍用 SES;DNS 可以繼續用 Cloudflare,不需把兩者綁成同一供應商。 |
**我建議你的第一個 PoC:**CRM + listmonk + SES,用一份小型已授權名單,跑通「Agent 建草稿 → 預覽受眾 → 排程 → 寄送 → 退訂/退信回寫」。如果實作中發現主要需求是改 TS 郵件平台內部,再換成 Plunk + SES;不要一開始同時正式營運兩套郵件平台。
若你更在意不用維護應用,把同一個 PoC 改接 Plunk Hosted 或 Resend Marketing,再比較每月實際用量與維護成本。沒有必要為了 MCP 再多部署一套你不需要的管理產品。
研究範圍與尚未驗證事項
本次查核公開英文官方定價、API、MCP 文件與前次固定 commit 的原始碼;未開通帳號、部署、購買服務或實際寄信。
供應商價格是查核當日快照;計算排除稅、促銷及可選服務。不將交易型服務價格挪用為不支援的電子報用途。
SMTP2GO 入門價格有官方頁面不同文字衝突,已明示;Mailgun/Postmark 動態級距未完整核實,不以猜測數字填表。
Resend 的 pricing.md 已直接讀取;Marketing 按 contacts,API 交易型按封。真正選用的產品與帳單分類仍在 PoC 核對。
有 SLA 不代表 inbox 保證。未做同一名單、同一內容的隨機分組實測,因此沒有宣稱哪家到達率最高。
CRM、Plunk、listmonk 的前次源碼快照分別是
6d4793dd6d7a、cc77d5f085a5、5e23f60ad974;沒有把它們說成已驗證相容的正式組合。CRM 為 MIT;Plunk/listmonk 為 AGPL。整合以 API 邊界為主,修改與提供服務時仍需符合各自授權。
建議的 TypeScript service、MCP 工具、同步資料模型與告警政策屬設計提案,並非本次已完成的程式功能。
官方來源與原始碼
單一 HTML,可離線閱讀與列印;外部來源連結需網路。報告已整合前次 CRM/電子報研究,並依「不自架 SMTP、使用第三方寄送」的新條件更新建議。
參考資料
- AWS SES 定價:Essentials 與 à la carte、資料及附加費
- AWS User Engagement SLA:Included Services 包含 SES
- SES production access 與 sandbox 限制
- SES SMTP credentials:區域與憑證區別
- SES:SNS bounce、complaint、delivery 通知
- Cloudflare FAQ:目前僅交易型郵件,marketing 尚未支援
- Cloudflare Email Service 定價
- Cloudflare Workers 定價:Paid 最低月費
- Cloudflare Email Service:Sending Beta 與 Routing
- Cloudflare:已提供 authenticated SMTP submission
- Plunk Hosted Billing:單價、附件與計費單位
- Plunk 官方 MCP:功能與 headless 選項
- Plunk Docker:API、worker 與相依服務
- Plunk SESService 原始碼:AWS SES backend
- Plunk webhook:透過 workflow,失敗不自動重試
- listmonk 官方 bounce 處理:Amazon SES SNS
- listmonk 官方 REST API
- listmonk 寄送管理:one-click unsubscribe headers
- CRM REST bridge 與 OpenAPI 原始碼
- CRM README:技術棧與部署
- Resend 官方 AI 可讀價格表:交易型按封、Marketing 按聯絡人(直接讀取)
- Resend 定價頁:transactional 與 marketing 計費分開
- Resend 官方遠端 MCP:OAuth、Bearer、broadcasts 等
- SMTP2GO 定價頁:入門價格文字有差異,100K 為 US$75
- SMTP2GO 新帳戶審核與 marketing permission
- Postmark Message Streams:broadcast 與 transactional 分開
- Postmark 官方比較頁的價格參考;購買仍核對 pricing selector
- Elastic Email API:Starter / Pro 定價與 webhook 差異
- Mailgun 官方定價與 SMTP / HTTP API
- Zoho ZeptoMail:不支援 bulk / newsletter
- Google Email sender guidelines:authentication、退訂與 spam rate
- Google sender FAQ:spam rate 建議低於 0.1%,避免達到 0.3%
- Plunk EmailHeaderService:行銷與交易郵件的退訂標頭
- listmonk 權限:campaigns:manage 與 campaigns:send
- CRM Contact schema:不是電子報同意帳本