我即将开始在我的Web应用程序中构建SMS警报功能。目的是提供两种服务:
我还认为会有其他用户付费方案,例如他们是否有他们想要提醒的辅助手机,因为主机只想为每个用户支付一部手机。
从我的研究中:
我可以使用第三方短信网关提供商。每封邮件的费用约为0.05英镑。我可以发送电子邮件到999999999@TheGatewayProvider.com,或者我可以在URL中使用带有合适参数的HTTP请求。
我可以将电子邮件发送给用户的网络提供商(我相信这只能在美国使用)
编辑:各种提供商如何处理发件人/主题和邮件有各种变化,因此发送的实际邮件的呈现可能难以预测。
让我感到震惊:
我们发送的电子邮件有时会在服务器的SMTP队列中延迟,更不用说任何下游队列了。向网络提供商的SMS网关发送电子邮件似乎经常被视为低优先级。
因此,向第三方短信网关提供商提供的HTTP应该会给我最短的延迟(对于“由于恶劣天气导致此下午事件被取消”非常重要)
当我偶尔从我的手机发送短信时,他们需要几天才能到达 - 我认为这是我们必须忍受的事情?
话虽如此,我们也会提供低优先级的信息性消息并通过最便宜的路线发送这些消息很有吸引力!所以我打算允许用户为这些消息输入电子邮件地址 - 意图是他们将使用电子邮件地址为他们的移动电话公司的短信重定向服务,或类似的(即设备的电子邮件地址,而不是收件箱)
我也想知道允许用户进入IM,Twitter或其他类似用户是否可以在实践中得到充分利用和高效?
从我看过的第三方网关看来:
有些人使用比其他网络更高级别的网络,这可能会影响性能? (或者只是营销hogwash?)
有些人提供比其他人更好的反馈。我需要保持关于账单的争论 - 以及客户已经用尽的多少“信用” - 至少;得到回答“OK”/“电话号码不存在”因此对我来说非常重要。我找到的一个提供程序每天创建一个可以下载的文本日志文件,并且可以与我的传出日志协调。
我将非常感谢您的意见和经验:
用户将按照他们所知的方式输入手机号码。我是否需要强制执行+9912345 ...以便我也获得国家/地区代码?
如果手机是外国手机(我的总部设在英国)会发生什么?收件人是否支付国际费用?或者网关提供商是否有本地传输服务?
我需要对非字母字符做什么?英国英镑标志“£”和CR / LF让人想起。如果这些编码可能导致长度限制上的消息在编码后超过它(这样我需要将其构建到消息创建表单的验证中)。是新线CR + LF还是仅CR?
是否有任何网关都有模拟?这样我就可以测试我的应用程序,而不会产生短信的任何实际费用。
我计划记录任何失败尝试的手机号码并标记用户的记录,以便下次登录时我可以鼓励他们更正号码。
任何其他的问题和建议都会非常感激。感谢。
答案 0 :(得分:3)
一个大问题,发生在我身上,虽然这不是一个编程问题,它只是一个经验,需要考虑。
当有人向您发送一条具有紧急意义的消息,然后发件人(手机的所有者)来到您身边并询问您是否收到了消息,这就是让我烦恼的事情,可能会出现一排因为你可以声称没有收到它,从而使发件人有点感到恼怒/交叉/愤怒,你已经“忽略了他们”或“没有回应”,实际上这是由于提供商的网络问题。
有趣的是,连续一个小时后,你的手机发出嘟嘟声,你发来的信息就到了!这发生在我身上好几次!但是,如果不知道发件人身上发生了什么(危机,紧急查询等),我该怎么办?
因为如果以太网不是100%稳定(路由器停机,dns消失,服务器中断等),将消息从以太网(互联网)发送到手机时要小心谨慎,所以值得记住这一点。就像问题是你如何保证短信的即时交付?这是一个很大的问题,必须要有可靠性,通常需要付出额外的努力......
手机(大多数通常都是这样做的)有所谓的传送报告,有些是开机的,有些是关闭的,这是了解收件人的手机是打开还是关闭的有用方法,如果有的话,您将收到一份即时交付报告,表明它已交付,同样,如果关闭,收到交付报告将有明显的时间延迟,这取决于您的提供商的最长交付时间。
对不起,如果这看起来像是漫无目的......
希望这会给你一些思考的食物, 最好的祝福, 汤姆。
答案 1 :(得分:2)
SMS是电信服务,而不是Internet服务。这带有一些不同的规则。
对于初学者来说,许多端点都是计费/可计费,并与单个服务提供商签订合同。这将包括您的所有用例。
其次,计费是发送方和接收方的合同问题。除非您限制自己向特定国家/地区发送短信,否则您根本无法声明“主机支付”的发件人。美国是最着名的例外。 “接收者支付”更糟糕。由于短信垃圾邮件,电信公司通常只有在与您签订合同时才会允许此类流量。
第三方短信运营商可以解决其中的许多问题。他们比普通的电信公司更容易服务。他们甚至可以为您提供国际短信。
SMS往往会缓冲网络本身,而不一定是电子邮件网关。在个别情况下,您可能看不到差异。但即使你有直接的SS7链接到电信公司,你仍然会有延误。
真正的电信公司有测试网关,但对于那些我无法给你的使用条款。但这个想法肯定能够以更低的成本测试你的应用程序。
SMS使用自己的字母表,一个相当令人讨厌的多septet编码(7/14/21位!)引用的160个字符限制来自140字节的有效负载。这也可以编码为70个UTF-16字符。