问题
for a project I'm working at I need to send SMS messages in a reliable way as this is a production application. The problem I have is that the application runs on the cloud and I can't use extra hardware like SMS gateways.
The provider I'm using does not offer the typical mail to SMS gateway and I don't find it too reliable. Any serious solution?
Thanks.
PD: I'm not looking for a free service but a reliable one.
PD: I need the service for Spain and only to deliver messages, not to receive them.
回答1:
Your specific question about reliability probably depends on the geographical region you are sending to. Hopefully more devs can offer real life experience. Twilio does have a big user base and usually this suggests the service is good http://techcrunch.com/2012/06/05/twilio-passes-a-milestone-100000-developers-for-its-voip-sms-platform/ Also see this previous SO entry https://stackoverflow.com/questions/2528919/sms-gateway-service-provider-with-php-api
Choosing a provider does also depend on what countries you require coverage for, whether you require the ability to send and receive, and if you want a dedicated shortcode. There are a whole bunch of companies offering web based APIs for sending SMS including a bunch of operators offering a service. These tend to offer different international coverage with most having the best coverage in particular regions. The cost of the services also varies with setup fees varying between companies and depending on if you require a dedicated shortcode set up.
Here are some of the better known companies offering SMS web API services
Twilio - US coverage for send and receive but currently running an international beta program https://www.twilio.com/international-sms, no setup fees or minimum contract for the standard service however there is a 3 month minimum if you want to use a short code.
Tropo - US coverage for send and receive and it is possible to send SMS message to international numbers but not receive.
Zeep - US only coverage and send only, with a minimum monthly spend and using a Zeep shortcode.
Nexmo - No setup fee or minimum monthly fees. Provides international coverage with currently a low rate on SMS sending in the US. Limited country coverage for receiving SMS.
MediaBurst - UK based company with International coverage for send and receive SMS APIs. Note that "international coverage" does not necessarily include all US carriers (for example) but the majority. They give a fixed price of £0.05 per SMS with bulk pricing. Does not seem to support custom short codes.
There are also some operators offering web based APIs for sending SMS through their network including:
Bluevia offer a unique profit share model where the developer shares the profits of the sent (or received) sms, however the coverage is limited to Telefonica networks in some European and South American countries (see https://bluevia.com/en/page/tech.overview.countries). They also offer payment and location APIs.
The recently launched OneAPI is available on the three major operators in Canada and is to be rolled out to different countries soon. This gives access to sending and receiving SMS as well as some other things like payment and location. The cost for sending and receiving SMS depends on the operator.
回答2:
I've been using Twilio and so far it's been reliable - their c# library is easy to use (I have but one feature where I find it lacking). And I find the costs of renting numbers, sending/receiving sms to be really low.
回答3:
You're looking for something reliable and international - I'd suggest Nexmo (Disclaimer: I do a bit of developer evangelism for them).
- Nexmo can deliver to Spain (along with many other countries)
- Nexmo works directly with carriers, so you have a reduced path of delivery - that makes it cost effective and reliable.
You would send messages with a simple HTTP request, and (although you don't need this now), you receive messages as an HTTP request to your server.
You can even check the delivery stats for a specific destination using the QoD Dashboard, just note that a lower 'Success Ratio' is an indicator of bad numbers, the 'DLR Ratio' is a indicator of how well Nexmo is performing (for example, if you send a message to a invalid number, that effects the success ratio, but not the DLR ratio - since Nexmo will provide a delivery receipt indicating that the message could not be delivered).
回答4:
There are lots of companies that allow to send SMSs using an HTML POST or GET, or a web service accesible through SOAP, with XML or JSON.
So you need to contact one of this companies and get the details.
For an example, look at this:
- MyCoolSMS
- 1message
If your provider is serious, there should be two services:
- one which you will expose for sending messages
- other, exposed by your server that your SMS provider will use to send you notifications (delivered/read/couldn't be delivered) and so on
This is an example of this kind of service:
- Connection SOftware
A while ago there was an standard similar to this which was used by many companies, but I can't find it any more.
来源:https://stackoverflow.com/questions/10929635/how-to-send-sms-programatically-in-a-professional-and-reliable-way