2011-10-08 141 views
1

我一直在测试通过短信从PHP脚本触发预订提醒的各种解决方案。我发现的最接近的解决方案是通过电子邮件发送短信到基于移动电话供应商的具体地址,这里列出的地址列表的能力:PHP电子邮件发短信短信解决方案

http://en.wikipedia.org/wiki/List_of_SMS_gateways

的一点是它没有接缝的工作。到目前为止,我已经给O2,Vodafone和Orange发送了一条消息。 O2和橙色,发送的消息,但没有收到。沃达丰,该消息被返回为空地址。

此技能是否已解散?有什么选择。

+0

你不是说你需要这个的国家 –

+0

电子邮件网关是臭名昭着的不可靠:http://stackoverflow.com/questions/3524742/sms-gateway-for-windows-c/3525070#3525070 –

回答

1

发送电子邮件不是传递短信的可靠方式。

通常,收件人必须为此类邮件付费。这种方法必须由许多国家的移动电话用户明确激活。 (绝大多数德国的运营商都至少在德国,而英国的IIRC也是这种情况。)

使用合适的短信网关,将您的短信提供给移动网络,就好像它们来自电话一样。绝大多数这些服务(可能是所有有价值的服务)都带有每条消息的费用。 This question显示几个选项。

2

我们目前使用Clickatell来完成您所需要的功能。 http://www.clickatell.com

一旦你注册并购买一些短信学分,像这样的工作..

$postString = 'api_id=123456&user=USER&password=PASS&text=YOUR SMS MSG&to=4471234567890'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://api.clickatell.com/http/sendmsg'); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); 
curl_setopt($ch, CURLOPT_FAILONERROR, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_TIMEOUT, 15); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$response = curl_exec($ch); 

希望帮助!

+0

几年来从这个答案队友,但感谢张贴这个。我不是OP,但这对我的应用程序帮助很大:) –