一、SendCloud介绍
SendCloud由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的API接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。
二、SendCloud使用
SendCloud使用前需要先了解几个常用的功能以及定义。
1.邮件模板:你要发送给客户的邮件的内容,可以是html也可以是文本,如果是html可以写入变量格式为%变量名%,在发送时SendCloud会将变量动态替换成对应的值。
2.地址列表:当需要发送同一个模板给大量客户时可以创建一个地址列表,将客户的邮箱地址以及模板中的变量对应的值写入列表,执行发送后SendCloud会对列表中的邮箱地址进行逐一的邮件发送。
SendCloud的API调用就是简单的post或者get请求,具体的方法请参照如下地址
当然SendCloud也可以进行短信的批量发送,但是我没有用过,所以不做说明。
三、SendCloud投递回应
SendCloud自身拥有投递回应的处理机制,可以用过api调用。再这里就不多说了。我主要说的是SendCloud提供的自定义的邮件触发机制——WebHook
webHook主要的目的是由开发者来处理用户的请求,比如点击,取消订阅等等,它的机制也很简单,在用户执行某一个请求时会向你指定的地址发送一个http的post请求,并附带一些参数(参数主要包括,验证信息,请求类型,请求时间等等),开发者可以根据这些参数自己定义处理方法。
有一下几点需要注意:
1.给webHook提供的地址要有返回值,哪怕返回一个空字符串,如果没有则在sendcloud发送测试的时候通不过。
2.签名验证使用的是hmacsha256,并且签名的拼接是timestamp在前token在后生成的签名才能跟signature对的上。
3.第三个是个人的观点,最好不要把点击,打开这样高频率的事件加到webhook中。这样会增加服务器的压力。
四、SendCloud注意事项
SendCloud的使用很方便,但是在使用过程中可能会有一些意想不到的问题,我就说一下我遇到的问题。
1.不要同时调用同一个模板进行邮件发送。为了是发送更加快速,开发者往往使用多进行进行发送,这样会出现一个问题就是进程A对模板进行的编辑替换,此时进程B刚好进行调用发送。导致的结果就是进程A的模板信息被进程B发送给了进程B所要发送的联系人。
2.模板中变量不能太多。邮件模板允许添加动态的变量以%变量名%的格式存在,发送时会将变量替换成对应的值,但是SendCloud有一个隐藏规定就是变量的占比不能超过整个模板的25%,否则将不能替换成功(但api调用没有问题且没有错误提示)。
3.向地址列表中添加用户邮箱地址时一次不要过多。开发者通过api向地址列表中添加需要发送的邮箱地址,这个过程中每一次的调用不要填写过多的地址,SendCloud的机制是加入此次添加的邮箱地址中只要有一个有问题,那么所有的邮箱地址都将添加失败。因此条件允许的情况下,为了保证添加邮箱地址的准确性,建议一个一个的去添加。
4.api调用时需要捕获超时异常。大部分的SendCloud发送都是使用的定时脚本,执行定时脚本时如果不进行异常的捕获,某一次调用api时系统超时,那么整个脚本都会停止。因此要做一下异常的捕获和处理。