如何在我的网站上添加短信功能?


57

我想添加一种功能,可以通过电子邮件和SMS向人们发送提醒,以提醒他们在我正在构建的Web应用程序上注册的特定事件。电子邮件部分并不困难,但我想知道在哪里可以找到发送SMS消息的良好解决方案。

如果此解决方案允许与我的Web应用程序进行双向SMS通讯,使人们能够以CONFIRM或CANCEL类型的消息进行回复,那也将是一个加号。

有没有人实现这样的事情?有人知道那里有好的工具吗?

编辑:我意识到这更多是一种“为这只猫蒙皮的方法”类型的问题,因此我将其更改为社区Wiki。


+1,我知道十二种方法的SMS API提供程序,但是如果收到答复,则没有一种方法可以发回。
蒂姆·波斯特

我在这个问题上添加了赏金,以期改善对此问题的答案。
artlung 2010年

杰西加文(Jessegavin),如果您想选择一个最佳答案,请随时-悬赏计划明天结束!
artlung

Answers:


25

由于最初建议的服务已经停产,因此我不得不编辑此答案几次。我相信新的行业领导者是Twilio,他们拥有出色的API和合理的价格。TropoPlivoNexmo是一些值得考虑的替代方案。

我使用IMified已有一段时间,做了类似的事情,并且发现它工作良好。它使您可以通过HTTP POST接收SMS(或Twitter和IM消息),并且Web服务器的响应将作为答复发送。他们还提供了可用于发起对话和发送消息的Web服务。

在寻找其他选项时,我遇到了Zeep Mobile (注意:Zeep Mobile自2013年8月1日起将不再营业),它具有用于发送和接收SMS的API。它是免费的,并受广告支持,也可以收取一定费用。我没有尝试过,但是看起来很有趣。

您还可以使用ClickATell之类的SMS网关。

祝你好运!

编辑:我在StackOverflow上发现了一个问题,其中有很多建议,有些可能已经过时。


我也使用CLickATell,我对他们的服务感到满意。
亚历克斯(Alex)2010年

我要补充一下Plivo付费服务,它非常好。我们曾经使用过Twilio,它也很出色,但价格更高。
2014年

15

我有一个朋友设法通过电子邮件实现了此目的。我相信他这样做完全是本网站推荐的方法

T-Mobile:电话号码 @ tmomail.net
维珍移动电话:电话号码 @ vmobl.com
Cingular:电话号码 @ cingularme.com
AT&T:phonenumber@txt.att.net
Sprint:电话号码 @ messaging.sprintpcs.com
Verizon:电话号码 @ vtext.com
Nextel :电话号码 @ messaging.nextel.com

其中phonenumber =您的10位数电话号码


1
我刚刚对此进行了测试,运营商(AT&T)在文本消息的开头添加了FROM:[发件人名称],SUBJ:[主题行],MSG:[Message Contents]。-因此(至少)有21个字符被此方法用尽。我认为(至少对我而言)这对于大多数面向公众的Web应用程序是不可接受的。
jessegavin 2010年



2
在我的国家(阿根廷),您必须支付通过电子邮件收到的SMS(您的客户可能不喜欢)
Eduardo Molteni 2010年

1
您如何确定承运人是谁?
亚当

9

我一直在使用Twilio声音,我一直很深刻的印象。我确定他们的SMS系统没有太大不同。这样一来,您就可以在不知道要发送至的电子邮件地址的情况下将其发送给任何运营商(因为我注意到它们会随着时间的推移而变化)。


所以您正在使用他们的API?您如何使用它?
artlung 2010年

1
我正在使用他们的语音API来通过PHP脚本触发呼叫。我正在使用它拨打电话,并使用它进行语音转短信,然后接受用户的回复。
Darryl Hein


4

我过去考虑过的其他两个选项:

Skype API
使用新的Skype API发送和接收SMS。我想Twilio便宜一些,但是Skype在更多国家/地区都可以使用(如果您想接收SMS的话)

将电话插入服务器
如果您居住在SMS网关公司收取大量费用的国家(如阿根廷),则可能会发现购买电话并将其插入服务器便宜(当然,这取决于您的托管环境)。然后,您可以使用SMSToolkit之类的软件与手机进行交互。



2

我已经使用Vidicom UK作为SMS提供程序编写了两种方式的SMS系统(不确定它们是否仍在运行)。基本上,它们具有基于HTTP的API,您可以在其中发送和接收SMS消息。它太复杂了,无法详细解释,但是从本质上讲,我有两个数据库表,一个用于从网关接收的传入消息,另一个用于排队并发送到网关的传出消息。

然后,我基本上必须解析传入的消息,以查看它们是否包含诸如CANCEL或STOP之类的关键字,然后相应地处理该消息。不幸的是,您收到很多垃圾邮件-您会惊讶地发现有多少人将SMS邮件发送到错误的号码-因此您必须回复说“无法理解的邮件”等。


2

如果您想要负担得起的批量SMS提供商,可以使用www.SourceSMS.com-开发人员API-它们提供国际覆盖,并且您可以轻松下载脚本并将其集成到您的网站中。


1

另一个选择是使用PHP的邮件功能和运营商的电子邮件服务器列表,如下所示:

在PHP文件上制作HTML表单,

<select name="carrier" style="width: 130px" >
<option selected="" value="1">Verizon Wireless</option>
<option value="2">Alltel</option>
<option value="3">Boost Mobile</option>
<option value="4">Cingular</option>
<option value="5">Nextel</option>
<option value="6">Sprint</option>
<option value="7">T-Mobile</option>
<option value="8">Virgin Mobile</option>
<option value="9">AT&T</option>
</select>

然后设置邮件的发送位置:

if ($carrier == "1") {
    $email = "$to@vtext.com";
} elseif ($carrier == "2") {
    $email = "$to@message.alltel.com";
} elseif ($carrier == "3") {
    $email = "$to@myboostmobile.com";
} elseif ($carrier == "4") {
    $email = "$to@cingularme.com";
} elseif ($carrier == "5") {
    $email = "$to@messaging.nextel.com";
} elseif ($carrier == "6") {
    $email = "$to@messaging.sprintpcs.com";
} elseif ($carrier == "7") {
    $email = "$to@tmomail.net";
} elseif ($carrier == "8") {
    $email = "$to@vmobl.com";
} elseif ($carrier == "9") {
    $email = "$to@txt.att.net";
}

发送邮件:(需要定义$ email,$ subject,$ msg,$ mailfrom,并采用正确的格式,建议还清理输入内容)

if (mail($email, $subject, $msg, $mailfrom)) {
    echo "<h4>Your Text Was Successfully Sent.</h4>";
    echo "<br />";
    if ($backurl == "") {
        echo "<a href='javascript:history.back(1);'>Back</a>";
    } else {
        echo "<a href='" . $backurl . "'>Back</a>";
    }
    echo "</body></html>";
} else {
    echo "<h4><b>Error Sending Message</b></h4><br>Can't send txt to $to. <br> Contact the site Administrator.";
}

确保PHP在php.ini中具有有效的邮件设置。如果你有问题,就问吧。



0

有许多生产者和服务提供商。我知道Ozeki SMS网关。如果您想使用自己的gsm调制解调器或SMPP / UCP / CMD或其他提供商提供内部解决方案,则以下URL可以为您提供帮助。当您决定时,第一个问题:您要发送或接收多少条SMS?

HTTP SMS API及其示例

有关如何设置SMS功能页面的ASP / ASP.NET开发人员的SMS API和PHP开发人员的示例可以为您提供有用的信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.