发“垃圾”Email对于很多Web产品来说都是一种稳定的营销手段。让我们看一个众多Startup都在用的Mail服务,Mailgun。这是一个众多牛逼Startup都在使用的服务,里面不乏37signal,Github,Parse,Stripe这样的大佬。
为啥要用第三方Mail服务?各种原因,一个是自己host mail server不安全,二是在程序端调用Mail发送邮件还是比较麻烦,万一换个邮箱所有代码都要变,三是自己的smtp server发的mail很可能被扔到垃圾邮箱里,还有就是Mailgun还可以帮助你追踪邮件的发送状态,比如多少被列入spam了(咋做到的呢?),以及各种行为,比如打开邮件,点击链接,以及有多少订阅用户再也无法投递到了。(还有6789)
针对为啥用HTTP而不用SMTP,Mailgun的说法是
The HTTP API has some advantages:
- It’s faster.
- Better for large scale sending.(这个很关键)
- You don’t have to deal with MIME because we will assemble it on our side.
- Just use a request library available for your language of choice.
使用
按照signup之后的guide很容易的就能发送一个email,就是这么简单。
curl -s --user 'api:key-xxx' \
https://api.mailgun.net/v2/sandboxa26b3f9c5f31491a906e26bb87864007.mailgun.org/messages \
-F from='Mailgun Sandbox <postmaster@sandboxa26b3f9c5f31491a906e26bb87864007.mailgun.org>' \
-F to='Xiaoping Feng <fxp007@gmail.com>'\
-F subject='Hello Xiaoping Feng' \
-F text='Congratulations Xiaoping Feng, you just sent an email with Mailgun! You are truly awesome!
想把发送者的域名改为自己的,需要添加自己的域名,配置DNS的TEXT,CNAME和MX,之后等一等就好啦。
Nodejs
怒,官方居然对Nodejs部分只写了个参见NPM module...发现指向的是一个不知道什么人写的小module...时间会让他们后悔的!
Track
前面说到,Mailgun的Track是很重要的功能。用户打开事件的监测应该是按照图片的view行为触发的The email recipient opened the email and enabled image viewing
。click链接事件是根据对mail内link地址的replace来实现的。其他的都好说啦~
可以通过API来下载以上事件的数据(包括query),也是超简单实用的~
curl -s --user 'api:key-xxx' -G \
https://api.mailgun.net/v2/samples.mailgun.org/events \
--data-urlencode begin='Fri, 3 May 2013 09:00:00 -0000' \
--data-urlencode ascending=yes \
--data-urlencode limit=25 \
--data-urlencode pretty=yes \
--data-urlencode recipient=joe@example.com
Sender vs From
Docment里的一个FAQ让我涨了姿势,邮件里的Sender和From还可以是不一样的。
The sender domain is what the receiving email server sees when initiating the session.
The from address is what your recipients will see.
For better deliverability it is recommended to use the same from domain as the sender.
哈,为了早起,今天再偷懒一下~晚安各位,祝打枪愉快~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。