我是如何在48小时内创建1QAD网站的

jopen 7年前

英文原文:How I build 1QAD in 48 hours

我是如何 hack 了 4 种免费工具来创建每日邮件发送 app 的。

本文是关于如何创建 One Quote A Day’s(1QAD)每日引用邮件服务的。

挑战

手头有数据库或名言(quote)和邮箱地址列表,我的任务就是每天给这些列表发送带有名言的邮件。名言应该按他们在数据库的顺序或状况进行读取。

理解挑战

让我们把问题分解为简单的任务:

  1. 在某处存放名言
  2. 在某处存放邮箱地址
  3. 创建一个重复任务,把一句名言放到邮件模板
  4. 发送邮件模板到邮件列表

存放名言:名言本身需要被放在某处。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是昨天,那么我就需要为今天读取数据库中的第一条名言。

扼要重述:

  1. 名言存放在 dropbox,通过 firebase 访问
  2. 邮箱列表在 mailchimp 里动态更新
  3. 使用 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 网站的 》 腊八粥