一、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时系统超时,那么整个脚本都会停止。因此要做一下异常的捕获和处理。

php怎么使用sendcloud,SendCloud的介绍以及一些使用的注意事项相关推荐

  1. 云计算机的优点,介绍云的优点和注意事项

    介绍云的优点和注意事项 已完成 5 分钟 云计算有哪些优势? 与物理环境相比,云环境有几个优势,Tailwind Traders 在迁移到 Azure 之后可以利用它们. 高可用性:根据你选择的服务级 ...

  2. linux内核开发入门二(内核KO模块介绍、开发流程以及注意事项)

    linux内核开发入门二(内核KO模块介绍.开发流程以及注意事项) 一.什么是内核模块 内核模块:ko模块(Kernel Object Module)是Linux内核中的可加载模块,它可以动态地向内核 ...

  3. 【kafka介绍,应用场景及注意事项】

    文章目录 前言 一.kafka是什么? 二.基础知识 核心概念 三.面试问题 kafka中的消息是否会丢失和重复消费 消息发送 消息消费 kafka为什么那么快 消费者提交offset提交的是当前消息 ...

  4. react中JAX语法介绍、使用、使用注意事项

    JAX介绍 jsx是js的语法糖,为了方便书写DOM. 之前书写DOM结构: let str = `<h1>hello react</h1>` JAX语法写DOM: let o ...

  5. simulink显示多个数据_Stateflow数据介绍(一)

    数据Scope的设置及其作用域 在上一期的内容中,我们进行了对Stateflow在工作中会提前打开的一个工具,也就是Model Explorer的使用,那么这一期,我们就开始使用这个工具,来介绍一下创 ...

  6. 【嵌入式开发-AD19】六文搞定Altium Designer-第一章:AD介绍及原理图库的创建

    [嵌入式开发-AD19]六文搞定Altium Designer-第一章:AD介绍及原理图库的创建 在文章的开头我想首先简单介绍一下国产全免费EDA软件,嘉立创EDA.嘉立创EDA拥有网页版和安装版两种 ...

  7. 矩阵元安全多方详细介绍

    第一章 MPC&JUGO 1.概述 大数据时代,海量数据的交叉计算可以为科研.医疗.金融等提供更好支持.许多企业或组织出于信息安全或利益的考虑,内部数据是不对外开放的.形成一个个数据孤岛,数据 ...

  8. 谷歌Guava LoadingCache介绍

      在工作中,加Cache是非常常见的一种性能优化手段,操作系统底层.计算机硬件层为了性能优化加了各种各样的Cache,当然大多数都是对应用层透明的.但如果你想在应用层加Cache的话,可能就需要你自 ...

  9. Godot3游戏引擎入门之十四:RigidBody2D刚体节点的应用以及简单的FSM状态机介绍

    一.前言 时间飞逝,距离上次更新已经有半年之久!这几个月里我只有三分之一的时间很忙,相反其他时间是比较闲的,但是由于空闲时间非常"碎片化",导致我一直没有集中精力搞自己喜欢的&qu ...

  10. 车道线数据集详细介绍以及使用方法汇总——CULane Datasets、Tusimple、LLAMAS、ApolloScape(后续会持续更新)

    车道线数据集 一.CULane Datesets 1.1 介绍 1.2 下载使用注意事项 二.Tusimple 2.1 介绍 三.LLAMAS 四.APOLLOSCAPE 五.数据集遍历脚本工具 一. ...

最新文章

  1. 【C++】C/C++ 中default/delete特性
  2. java数据库连接的作用_java数据库连接池的作用
  3. Sklearn(v3)——朴素贝叶斯(2)
  4. php curl和file get,PHP cURL与file_get_contents
  5. 一条SQL语句的执行过程
  6. base64 二进制流java_读取和base64编码二进制文件
  7. 免费开源B2C电商系统:(ShopXO无需授权,即可商用)- 入门篇
  8. 【转载】如何做个好员工?
  9. SQL 删除数据-select在当前表字段作为条件
  10. 克隆的虚拟机一直重复出现登录界面_QQ空间里的装扮怎样才能克隆到自己空间?...
  11. android绘图软件推荐,动漫绘画辅助软件有哪些-7款绘画软件推荐
  12. 软考-系统分析师-论文写作-备考总结笔记
  13. 一文带你了解Windows操作系统安全,保护自己的电脑不受侵害
  14. 经典游戏PK:魔兽争霸VS星际争霸VS红警
  15. 动手下载网易课程视频 -- 正式下载
  16. I2C通讯常见问题汇总
  17. Tomocat:安装完成,显示HTTP Status 404
  18. PDF Expert教程之批注功能详解
  19. 腾讯云通过公众号开通短信验证码
  20. 网页设计图片素材网站 收集

热门文章

  1. php后端开发需要懂什么意思,PHP中的=什么意思?_后端开发
  2. 快速批量下载 B 站视频
  3. R语言可视化——熵曲线
  4. python xlsx转xls_Python将xls转换成xlsx
  5. 牛顿法求临界水深c语言程序,基于牛顿迭代法的圆形断面临界水深直接计算法邹武停.pdf...
  6. 什么是微内核,看这一篇就够了
  7. 作用域和作用域链 精解
  8. c语言小鱼的游泳时间,信息学奥林匹克竞赛-小鱼的游泳时间
  9. win10的Pytorch最全安装教程,解决pytorch安装问题!
  10. easyui mysql 分页_Easyui 树形网格添加分页_EasyUI 教程