2010-07-03 103 views
5

我必须开发一个应用程序,我需要向用户发送有关用户特定操作的SMS。如何使用Python/Django应用程序发送短信?

我听说过PHP的kannel,在Python中是否也有相同的帮助,或者还有其他更好的开源的sms网关,我可以在我的应用程序中使用它吗?

请建议。

在此先感谢。

+0

这里有一些非常好的答案。你打算做一些upvoting,然后选择一个你喜欢的?我知道这是几年后,但它会很酷,得到这个答案;-) – nicorellius 2014-02-16 21:38:49

+0

@nicorellius我真的很抱歉,我无法从这里选择任何答案。这里有很多不错的选择,但由于我国其他各种与政策有关的困难,我不得不放弃短信功能。 – 2014-02-17 04:14:53

+0

通常在这种情况下,我仍然会选择一个满足您的原始问题要求的人,并将其选为答案。这里有一个有效的答案,所以我会认为不管你的状态如何,你仍然可以选择一个“正确的”答案......无论如何感谢你的提示。祝你好运。 – nicorellius 2014-02-17 06:00:59

回答

3

通常,您可以使用常规的HTTP GET或POST请求来对付SMS网关,例如Clickatell和许多其他人。

0

[更新]由于基于电子邮件的解决方案不适合您,请查看Twilio。清理API,我听到有关它们的好消息。

如果您知道用户所在的运营商,那么使用几乎所有移动运营商提供的电子邮件至短信服务可能是最容易的。 Here's an article许多提供商的地址。

如果这对你有用(例如,如果你事先知道号码/运营商,或者你可以向用户询问运营商以及他们的号码),那么你所要做的就是发送电子邮件到适当的地址,它将作为短信发送给用户。

+0

感谢您的回复Parand。但我更喜欢一些开源的短信网关,因为依靠运营商似乎不是现在的好主意。无论如何,你的确是一个不错的选择。 – 2010-07-05 08:03:24

0

看看django-smsgate(BSD许可)应用程序通过SMS网关使用SMS。

0

我刚刚写了一个使用Django的基本Twilio演示应用程序,该应用程序向用户发送SMS消息并处理SMS响应。我将代码发布到github上,并写了一些说明性的博客文章。

顶级职位是here,但你可以从GitHub抓住所有的代码。请注意,我的具体示例使用LinkedIn进行身份验证,但第二篇和第三篇博文包含twilio特定的方法。这样你可以看到这是否是一种适合你的选项。

希望这有助于:-)

1

我这个苦苦挣扎了一段时间,真的很喜欢Twilio选项。但后来我深入挖掘,发现有一个名为pygooglevoice的Google Voice API可以使用。干净,容易...无载体查找...例如,建立一个virtualenvpip安装:

pip install pygooglevoice

然后使用这样的事情:

from googlevoice import Voice 
from googlevoice.util import input 

def send(number, message): 
    user = '[email protected]' 
    password = 'password' 

    voice = Voice() 
    voice.login(user, password) 

    #number = input('Number to send message to: ') # use these for command method 
    #message = input('Message text: ') 

    voice.send_sms(number, message) 

请注意,我已经做了有限的测试,所以我不确定所有的优点和缺点。我很有可能还没有发现有限制。但在我玩弄它的时候,我一直很开心。