我是如何在48小時內創建1QAD網站的
英文原文:How I build 1QAD in 48 hours
我是如何 hack 了 4 種免費工具來創建每日郵件發送 app 的。
本文是關于如何創建 One Quote A Day’s(1QAD)每日引用郵件服務的。
挑戰
手頭有數據庫或名言(quote)和郵箱地址列表,我的任務就是每天給這些列表發送帶有名言的郵件。名言應該按他們在數據庫的順序或狀況進行讀取。
理解挑戰
讓我們把問題分解為簡單的任務:
- 在某處存放名言
- 在某處存放郵箱地址
- 創建一個重復任務,把一句名言放到郵件模板
- 發送郵件模板到郵件列表
存放名言:名言本身需要被放在某處。Dropbox、S3、我們自己的服務器;選擇有很多。一旦確定好了,每句名言的 URL 不得不被記在某個地方。它可以放在一個 json 文件、或者你自己服務器等等。
存放郵箱地址:你可以存放在一個自定義的 json 文件、數據庫、或使用 mailchimp。
重復任務:很多極客愿意開發自己的計劃任務(cron)來發送郵件。cron 在 linux 世界應該廣泛,用于定期的重復任務。盡管如此,問題在于如果采用這種方法,你不得不控制郵件模板的輸出。它將是純 html,而不是所期望的輸出。
發送郵件:同樣,很多極客將考慮使用自己的系統來發送郵件。問題在于你沒有一種非常靈活的方法,來發送郵件的自定義模板文件。
解決方案
據我研究,最基礎的信息是 mailchimp 提供了名叫“RSS to Email”的活動(campaign)功能。這意味著,只要有了 RSS 地址,對于每條新的 RSS 條目,mailchimp 將自動給列表發送一封郵件。
Mailchimp 還提供了最簡單的、創建自定義郵件模板的方式。
搞定!
Mailchimp ping 我的服務器—運行在 Heroku 上【注1】—針對特定 URL 每天一次。
當 ping 的時候,該 URL 將生成一個動態的、帶有當天名言的 RSS 輸出。
這些名言被存放在公開的 dropbox 目錄里,他們的 URL 存放在 firebase【注2】。為什么?因為 dropbox 免費,firebase 也是免費。firebase 還幫我存儲了一個start_date
的值。如果start_date
是昨天,那么我就需要為今天讀取數據庫中的第一條名言。
扼要重述:
- 名言存放在 dropbox,通過 firebase 訪問
- 郵箱列表在 mailchimp 里動態更新
- 使用 mailchimp 的“RSS to Email”的活動功能,來重復發送 email
我寫的所有東西都在我的服務器 /rss
端點(endpoint)里,它們將生成 RSS 文件。60 行的代碼,0 美元的花費。
- 注1:Heroku 是一個支持多種編程語言的云平臺即服務。在 2010 年被 Salesforce.com 收購。Heroku 作為最開始的云平臺之一,從 2007 年 6 月起開發,當時它僅支持 Ruby,但后來增加了對 Java、Node.js、Scala、Clojure、Python 以及(未記錄在正式文件上)PHP 和 Perl 的支持。基礎操作系統是 Debian,在最新的堆棧則是基于 Debian 的 Ubuntu。http://zh.wikipedia.org/wiki/Heroku
- 注2:Firebase 也是類似的云服務,不同于 Dropbox 的文件,Firebase 同步的是數據,服務對象是網站開發者,幫助他們開發具有實時(Real-Time)特性的應用。http://www.csdn.net/article/2014-10-22/2822221-google-acquires-firebase
— END —
譯文: 《我是如何在 48 小時內創建 1QAD 網站的 》 臘八粥