[教學] 華爾街日報 AI 自動化摘要,寄發電子信

Oct 16, 2025 min read

前言:一個懶惰的想法

約莫今年三月份(2025-03)的事情,和同事閒聊時有談到最近他訂閱了華爾街日報的消息。

並且每日也會寄送報紙版本的華爾街日報到信箱來,但是每日看完一份報紙對於一個上班族工程師來說是個奢侈的妄想,或許對現代人來說都是。

如果能有更簡短的重點資訊和摘要,應該會對日常接收資訊上有所幫助。甚至可以進一步過濾出有用的資訊就更好了。

所以當下決定搞起這份專案。

核心概念很簡單,就是

從下載《華爾街日報》(WSJ) 的每日 PDF 報紙,利用 Google Gemini AI 進行深度分析與摘要,最終將精美的 HTML 格式報告透過 Email 發送給訂閱者。

實作:細節往往比想像中更多

在規劃時,早期的版本由於華爾街日報的連結都是固定的。所以很簡單就可以爬取到資料,甚至根本不需要登入的 session ,只要知道連結,就可以看到報紙。

但很不幸的,約莫四月中,華爾街日報剛好打算將這功能收斂。現在會綁定有訂閱帳號者的 session 。

所以我們需要多維護一份 cookie ,去維持 session 的存活。

再來,還有微調 gemini 每次回傳的格式內容要是固定且符合預期的格式,在這方面上也嘗試了許多不同的 prompt engineering 的細節

還有 system_instruction 上的 prompt design

最後還有一些訂閱信件者的 api 還有 web 介面,這部分決定簡單做在 cloudflare worker 上。

會有訂閱連結、取消訂閱連結、重新訂閱之類的流程該如何設計。

細節:防止訂閱者中出現 cracker

  • 在取消訂閱的連結上,為了有效預防訂閱連結外流出去以後,可能會吸引到一些 cracker 去惡意退訂閱別人的電子報。所以需要一些 token 的機制 (去將 email, expires, secret 去做 hash)。

細節: ci/cd 建置

  • 搭建在自己的 server 上,透過串接 github action ,介接 local machine 的 action runner (透過 docker),來實作自動化部署。
  • 觀察 SSO cookie 的需要項目,以維持可用的登入憑證。

細節: sql & storage service for free

  • 目前採用 cloudflare 的 D1 SQL 還有 R2 storage service 來作為 mail list 和 pdf file 的儲存區。

細節: 機敏資訊的防護

  • 在 mail list 的處理上,又區分為讀取和寫入。寫入就是訂閱電子報的功能,所以 worker api 會是開放對外,僅設置簡單的 invite_code 機制還有區域性防火牆阻擋(台灣)。讀取 mail list 則會比較需要被保護,防火牆規則上採用 ip 限制和 api_key 機制

細節: hosting mail server

  • 目前採用自己建立的 mail server 去發信(僅打算給周遭親友訂閱),所以要注重垃圾信件分數還有一堆驗證 header(SPF, DKIM, DMARC, BIMI)。

總結

簡而言之,大概要顧及以下項目的實作,這項系統才算完整。

實作細節如上,但避免法律問題,我就不開放給大家訂閱惹。畢竟前陣子台灣的七法公司案件,讓我怕到不敢貿然開放訂閱。

此篇文章僅限技術上的分享,切記不要犯法去當內容剽竊者。

在未來的世界當中,我相信最有價值的就是資訊內容,但很可惜的是現在也是最沒有價格機制可以去完善保護的部分。


最後,以上皆可自行 vibe coding 去執行。費用基本上只有租賃 domain 的成本。

還有需要有一個機器可以去跑 cron tab,但這可以考慮採用在爪雲的 container 平台上架 n8n 去解決 (https://run.claw.cloud/)