基本概念
SendCloud 服务机制
SendCloud 为用户提供了 SMTP 和 API 两种调用接口的方式, 用户可以根据业务场景或个人喜好选择任一方式接入
- 用户编写程序, 调用 SendCloud 的接口, 传输邮件数据
- 请求成功之后, SendCloud 会对邮件数据进行处理 ( 排队调度, 速率控制, 变量替换, 追踪 )
- 处理完毕, 邮件会被调度到相应的外发机器「outbound」( 共享 IP, 独立 IP )
- 最终, 由「outbound」和邮件服务商通讯, 将邮件投递出去
概念解释
ESP:Email Service Provider,是指提供邮件服务的供应商,既包括腾讯邮箱,网易邮箱这类提供邮箱服务的企业,也包括SendCloud,爱发信这类提供邮件发送服务的企业.
MP:Mailbox Service Provider,特指 腾讯邮箱,网易邮箱这类提供邮箱服务的供应商.
Bounce: 邮件发送被退回,包括软性弹回(软退信)和硬性弹回(硬退信)
Soft Bounce:软退信,是指 MP 在成功接收邮件之后,处于各种原因,在稍后时间又将此邮件退回给发信域名,实际结果依然是邮件投递失败。常见的原因有邮箱空间不够、判定为垃圾邮件、收件人拒收、内部错误等等
Hard Bounce:硬退信,是指 邮件发往MP的邮件会话过程中,MP返回了SMTP Error Code,如:"5.0.1 Mailbox Does Not Exist"。常见的原因有并发连接限制、判定为垃圾邮件、收件人拒收等等
邮件类型
触发邮件: 在某种场景下, 由事件触发的邮件发送. 比如: 注册激活, 密码找回, 站内通知, 信息确认, 账单寄送等.
批量邮件: 商家对会员发送的通知邮件. 比如: 新功能上线, 打折优惠等.
注意: SendCloud 要求收件地址来源自会员注册, 发送内容是用户主动订阅, 且不带有广告营销性质.
通过 SMTP 接入
使用 SMTP 协议传输数据到 SendCloud 的邮件服务器 ( smtp.sendcloud.net:25 )
- 用户可以编写程序连接邮件服务器, 发送邮件
- 用户可以配置客户端连接邮件服务器, 只需修改用户名, 密码和 SMTP 配置即可
考虑到部分云服务商封禁了其内网对外 25 端口的访问, 所以 SendCloud 开放了 2525 和 587 端口. 连接 HOST 及端口号:
- smtp.sendcloud.net 端口号: 2525
- smtp.sendcloud.net 端口号: 587
通过 API 接入
API 是使用 HTTP 接入 SendCloud 服务的一种方式. 用户可以利用 SendCloud 提供的 HTTP 接口, 调用 SendCloud 的服务.
目前 WEBAPI 提供了邮件发送 , 域名查询, 个人信息, 地址列表 (CRUD), 统计查询, 标签 (CRUD), 退信列表 (CRUD), 取消订阅列表 (CRUD) 等功能.
用户只需要选择熟悉的开发语言, 实现客户程序, 就可以方便地和 SendCloud 进行通信.
API_USER
API_USER 是调用接口发信时的帐号
-
创建 API_USER 时, 你需要指定其「类型」(触发/批量), 「发信域名」, 「追踪选项」
-
类型: 「触发类型」的 API_USER 只能发送触发邮件, 「批量类型」的 API_USER 只能发送批量邮件
-
发信域名: 创建 API_USER 时需要选择绑定一个发信域名, 用以确定此 API_USER 发信时的域名
-
追踪选项: 选择之后, 使用此 API_USER 发信, SendCloud 可以帮助用户收集接收者相应的追踪信息
SendCloud 为新用户生成了「测试 API_USER」, 方便用户测试发送. 使用测试 API_USER 发信, 每天的上限是 50 封, 即使是收费用户
API_KEY
API_KEY 是调用接口发信时的密码
- 注册成功后,您需要登录账户手动生成一个 API_KEY
- 同一 API_KEY 在界面中显示一次后无法再次显示
- 每个 API_USER 都有对应的 API_KEY,可以相同也可以不同
- 可单独或者批量重置,批量重置的 API_USER 共享同一个 API_KEY
- API_KEY 重置之后立即生效,15 分钟以内新旧 API_KEY 均可使用
发信域名
发信域名是一封邮件的出处. 在 SMTP 会话过程中, 即是 mail from 的后缀
mail from: test@liubida.cn
250 sender test@liubida.cn OK
如上所示, liubida.cn 就是这封邮件的发信域名. 发信域名的概念很重要, 因为很多 ESP ( 邮件服务器 ) 就是根据发信域名来确定发信的频度, 每天发信的数量等重要指标的.
SendCloud 为新用户生成了「测试域名」, 方便用户测试发送. 测试域名的命名规则: '随机串.sendcloud.org'. 使用测试域名发信, 每天的上限是 50 封, 即使是收费用户
当用户正式接入服务时, 需要在 SendCloud 平台上配置自己的发信域名
正式接入 SendCloud 平台的用户, 应该拥有自己服务的域名 ( 比如 liubida.cn ) 你也可以使用 liubida.cn 的子域来作为自己的发信域名 ( 比如 push.liubida.cn )
你可以通过【设置】-【域名】-【新增发信域名】
来创建自己的发信域名
注意, 已经配置 MX 记录的域名不建议配置成发信域名, 你可以使用其子域名来进行配置.
下面列举了使用不同发信域名的邮件示例:
使用测试域名: W0YoeJHepAzA7v1JDuG6e8reehqEuPoP.sendcloud.org 发送的邮件
* 前缀: beb31150-bef0-11e4-9dbb-00163e15002f
* 发信域名: W0YoeJHepAzA7v1JDuG6e8reehqEuPoP.sendcloud.org
* mail from的组成: 前缀@发信域名 (beb31150-bef0-11e4-9dbb-00163e15002f@W0YoeJHepAzA7v1JDuG6e8reehqEuPoP.sendcloud.org)
使用自有域名 ( 自己创建的域名 ) : push.liubida.cn 发送的邮件
* 前缀: 98a47302-beee-11e4-a3b9-00163e12fa99
* 发信域名: push.liubida.cn
* mail from的组成: 前缀@发信域名(98a47302-beee-11e4-a3b9-00163e12fa99@push.liubida.cn)
发信域名配置
创建发信域名之后, 需要完成必要的配置, 才能使用其进行发信. 这些配置项是保证域名能够优质出信的基础, 如果使用未配置的域名发信, 出信量和到达率都会很糟糕.
- SPF ( 必配 ) wiki 解释
SPF 是为了防范垃圾邮件而提出来的一种 DNS 记录类型, 用于登记某个域名拥有的外发邮件的所有 IP 地址
- MX ( 必配 )
MX 是邮件交换记录, 它指向一个邮件服务器, 用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器
- DKIM wiki 解释
(必配)
DKIM 是防止欺诈邮件的一个重要技术手段, 通常发送方会在电子邮件的标头插入 DKIM-Signature 及电子签名资讯, 而接收方则透过 DNS 查询得到公钥后进行验证. 建议配置, 特别是国外域比较多的用户.
注意: 正是因为发信域名如此的重要, 所以 SendCloud 要求用户必须创建自己的发信域名, 并且完成配置, 才能正式接入
- DMARC
"DMARC"协议的主要目的是用于识别并拦截欺诈邮件。配置通过后,平台将使用当前域名作为 from 的域名后缀投递邮件。从而减少邮箱服务商拦截、提升邮件的可信度、提高进箱率.
- 标注红星, 表示此项配置为必配项
- 状态: 是否配置正确, 并通过 SendCloud 验证.
- 类型: 此项属于域名配置的哪一种类型. 比如 TXT, MX, CNAME 等类型.
- 需配置的记录值: SendCloud 引导用户需要配置的值
- 现有记录值: SendCloud 查询得到的记录值. ( 用户需要在自己的域名管理系统中做配置, 使
现有记录值
和需配置的记录值
匹配)
邮件模板 (template)
创建模板流程如下:
- 用户根据邮件标题、邮件内容和模板类型创建模板
- 创建成功后, 用户就可以使用此模板发送邮件
同时, 邮件模板也是一个方便用户发送邮件的功能. 用户编辑/上传邮件模板后, 在请求接口时, 不需要再传输邮件内容, 只需在参数中指定模板的「调用名称」即可.
用户可以通过【发送相关】-【邮件模板】
来创建【邮件模板】
变量替换
SendCloud 支持在邮件中使用「变量」.
变量的格式: 首尾使用 %
包含, 即为用户定义的一个变量. 举例:
亲爱的%name%: # name是变量
欢迎注册爱发信, 这是您的验证码: %active_code%. # active_code是变量
变量的用法:
- 在 普通发送, 模板发送 中使用变量, 来作为占位符
- 在 地址列表, X-SMTPAPI 中设置变量的值
- SendCloud 会根据不同收件人, 来替换邮件内容中相应变量的值
注意: 邮件标题中可以含有多个变量
当天请求额度
用户每天能够请求的额度值, 即每天能够发送给 SendCloud 的最大邮件数量.
用户请求超过此值时, 用户会收到 'Request quota exceeded' 的错误提示.
**注意: SendCloud 当天成功接收的邮件请求, 并不一定能够在当天发送完毕. 部分邮件可能会处于发送 - 暂停 - 发送 - 暂停的队列状态, 这样的队列状态可能会持续数日.
信誉度
用户在 SendCloud 平台的信誉评分. 「信誉度」和「当天请求额度」是高度正相关的两个数值. 当信誉度小于 0 时, 当天请求额度为 0 .
此评分是由 SendCloud 根据用户的邮件发送数据实时计算出来的
- ++ 优质的「送达率」,「打开率」,「点击率」会促成加分
- -- 大量的「无效地址」,「垃圾举报」,「取消订阅」则会促成减分
注意: 短时间内「无效地址」,「垃圾举报」的激增会直接导致信誉度减为负数 , 用户无法继续请求.
客户认证
用户在正式接入 SendCloud 之前, 必须完成一些信息的认证. SendCloud 目前提供了企业客户认证方式.
企业客户
-
完善信息: 此项认证需要填写企业相关信息.
-
邮箱认证: 此项认证需要你验证企业邮箱, 认证成功后才可进行商业认证
-
商业认证: 此项认证需要你提供「营业执照」, 网站认证的 ICP 备案信息和商业认证的公司信息, 两者需要一致
SendCloud 平台希望用户接入之前, 已经完成商业网站的域名申请和备案.
如果用户没有商业网站域名, 则该用户不能升级成为付费用户.
企业客户的当天请求额度初始值为3000
黑名单
SendCloud 黑名单由全局黑名单(退信地址)和局部黑名单(垃圾举报、自定义拦截)组成。全局黑名单来源于所有客户,也对所有客户有效。 局部黑名单来源于客户自己,也只对客户自己有效。
每个进入黑名单的邮箱都有过期时间,过期时间之前,如果对这些邮箱发信,会直接返回失败,失败原因:“黑名单:xxx(xxx)”。
类型 | 列表 | 过期时间 | 操作 | 备注 |
---|---|---|---|---|
全局 | 退信地址 (bounce) | 腾讯邮箱过期时间为2的N-1次幂天,最大过期时间30天;非腾讯邮箱过期时间为1小时、4小时、8小时,1天,2的N-1次幂天,最大过期时间180天 | 删除 查询 | N 为系统全局给该邮箱发信返回地址不存在的次数 ;客户只能操作自己发送过的退信地址; |
局部 | 垃圾举报 (compliant) | 180天 | 删除 查询 | 为避免投诉发信域名产生负面影响,建议不要随意删除 |
局部 | 自定义拦截 (block) | 3650天 | 增加 删除 查询 |