手机短信发送已经成为网站的标配功能。许多人认为,短信发送功能只是简单地对接一个短信平台即可,但实际上,这项功能远比现象中复杂。WebFuture 的手机短信发送模块具备许多亮点设计,功能丰富且细致入微。
手机短信发送机制的改进
如果手机短信发送是直接提交给短信平台,而本地不保留发送记录,这样的设计会存在一些问题:
- 无法排查短信发送模块的功能是否正常(是否成功发送?内容是否正确?),只能通过短信服务商的后台查询。
- 缺乏重发机制,如果短信平台偶尔出现故障,就会导致短信丢失。当短信平台故障导致无法发送时,无法及时报警。
- 无法排查短信发送模块的功能是否正常(是否成功发送?内容是否正确?),只能通过短信服务商的后台查询。
- 缺乏重发机制,如果短信平台偶尔出现故障,就会导致短信丢失。当短信平台故障导致无法发送时,无法及时报警。
而 WebFuture 的手机短信发送机制是:首先将短信记录保存在本地服务器中,然后通过短信发送服务不间断地轮询短信记录表,将未发送或发送失败的短信重新发送出去。这样就解决了直接提交短信平台模式下的上述问题。
支持多个短信发送平台的接口
支持中国移动、中国联通、中国电信等运营商以及名传无线等专业短信发送平台的手机短信发送接口。
短信发送记录管理
支持对短信发送记录进行查看、筛选、搜索、删除等功能,支持对短信进行重发等功能。
支持短信发送的优先级控制
支持短信发送的优先级控制,手机短信验证码之类的短信优先发送,而广告类的短信则优先级最低。
支持短信发送速度控制
短信发送平台通常具备防止 CC 攻击的机制,如果提交的短信并发量过大,就可能被短信平台视为垃圾短信而拒绝服务。因此,我们设计了短信发送机制:每发送一条短信后休眠 0.3 秒,发送完本轮次的所有短信后再休眠 1 秒,随后继续下一轮的 10 条短信发送。如果当前没有待发送的短信,则休眠 5 秒后重新轮询。这样可以有效避免被短信平台拒绝服务的问题。
支持短信发送失败后的重发机制
如果某条短信发送失败(例如手机号码无效,或短信服务商出现短暂故障),短信发送服务将在下一轮次继续尝试重新发送,最多可尝试 N 次(N 值可配置)。此外,还可以在短信发送记录管理界面中手动重新发送。
支持短信发送平台故障报警功能
当发送失败次数达到 N 次的不同手机号码的短信数量累计到 10 条时(这可能意味着短信平台出现问题),系统将向平台超级管理员发送站内短信和邮件进行报警(因为此时手机短信功能可能不可用)。
报警后,系统会自动暂停短信发送半小时,但仍允许添加新的短信发送记录(仅记录,等待系统恢复发送)。半小时后会重新尝试发送,如果仍然失败,则再暂停半小时。整个暂停和恢复过程均为自动化,无需管理员手动干预。管理员也可以在暂停期间手动恢复(例如确认短信平台已恢复正常时,可以立即恢复发送,无需等待半小时)。
支持短信发送量异常报警功能
系统每20分钟统计一次短信记录表中的最近一小时的短信数量,若超过报警值(可配置),将向平台超管发送报警短信。
支持短信发送量统计功能
提供按日和按月两种统计表。统计每日/每月发送的短信发送总量、发送成功数量、发送失败数量。便于与短信服务商进行对帐。
用户登录
还没有账号?
立即注册