it-swarm.cn

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

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

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

有没有人实现过这样的东西?有谁知道好的工具吗?

编辑:我意识到这更像是一种“很多方法来修饰这种猫”类型的问题,因此我将其更改为社区维基。

57
jessegavin

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

我一直在使用IMified一段时间做类似的东西,我发现它运作良好。它允许您接收SMS(或Twitter和IM消息)作为HTTP POST,并且您的Web服务器的响应将作为回复发送。它们还提供可用于 发起对话和发送消息 的Web服务。

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

您也可以使用SMS Gateway,如ClickATell

祝你好运!

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

25
Adam

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

T-Mobile :phonenumber @ tmomail.net
Virgin Mobile :phonenumber @ vmobl.com
Cingular :phonenumber @cingularme.com
AT&T:[email protected]
Sprint :phonenumber @messaging.sprintpcs.com
Verizon :phonenumber @ vtext.com
Nextel :phonenumber @messaging.nextel.com

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

15
Mike

我一直在使用 Twilio声音 而且我印象非常深刻。我敢肯定他们的 SMS 系统并没有太大的不同。这将允许您在不知道要发送的电子邮件地址的情况下发送给任何运营商(因为我注意到它们随时间而变化)。

9
Darryl Hein

这仅用于发送,但我已经将Penny SMS用于项目并且运气好。如果您碰巧使用Ruby,请查看 penny_sms_muncher gem

5
Matthew Shanley

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

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

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

4
Eduardo Molteni

我建议调查 http://www.world-text.com/ 提供的双向api。

3
AronHopkins

如果您想要一个经济实惠的批量SMS提供商,使用开发人员API,您可以使用www.SourceSMS.com - 他们提供国际报道,并且他们有脚本,您只需下载并集成到您的网站。

2
Liam Harris

我用Vidicom UK作为SMS提供者(不确定他们是否还在继续)写了两种方式SMS system。基本上他们有一个基于HTTP的API,您可以在其中发送和接收SMS消息。它太复杂了,不能详细解释,但实质上我有两个数据库表,一个用于从网关接收的传入消息,另一个用于排队然后发送到网关的传出消息。

我基本上必须解析传入的消息,看看它们是否包含CANCEL或STOP等关键字,然后相应地处理消息。不幸的是,你得到了很多垃圾信息 - 你会惊讶地发现有多少人发送SMS消息到错误的号码 - 所以你必须回复说“消息不理解”等。

2
Dan Diplo

另一个选择是使用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 = "[email protected]";
} elseif ($carrier == "2") {
    $email = "[email protected]";
} elseif ($carrier == "3") {
    $email = "[email protected]";
} elseif ($carrier == "4") {
    $email = "[email protected]";
} elseif ($carrier == "5") {
    $email = "[email protected]";
} elseif ($carrier == "6") {
    $email = "[email protected]";
} elseif ($carrier == "7") {
    $email = "[email protected]";
} elseif ($carrier == "8") {
    $email = "[email protected]";
} elseif ($carrier == "9") {
    $email = "[email protected]";
}

发送邮件:($ 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中具有有效的邮件设置。如果你有问题,就问吧。

1
ionFish

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

HTTP SMS AP​​I与 示例

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

0
Lilio Luami

我不确定您是否能够对回复做任何事情,已经有一些API用于实现Google Voice的文本功能。

http://code.google.com/p/pygooglevoice/

http://code.google.com/p/google-voice-Java/

0
Nick Painter