Building Bulk SMS Web Application - c#

We are creating a bulk SMS messages sending Web application using ASP.NET web Forms and C#.
There could be multiple logged-in users, sending bulk (1-5000) messages to their clients.
As per initial R&D we have selected to use Twilio's SMS API for this purpose.
But I am anxious about potential timeout issue while sending messages and saving response in loop, Also does Twilio accept multiple request instances?
Twilio has a limit or 1 message per second Then we can only send 3600 messages in one Hour, that would be a limitation.
Twilio provide Rest API but we are not familiar with MVC, so REST API idea has been dropped.
Please suggest other alternative, best practice and strategy to accomplish the task.
------------------UPDATE------------------------
Short Code Rest API Documentation
https://www.twilio.com/docs/api/rest/short-codes
Twilio Sending Documentation
https://www.twilio.com/docs/api/rest/sending-messages
Request Data From Twilio Documentation
https://www.twilio.com/docs/api/twiml/sms/twilio_request

With those volumes, there is no way you are going to be able to get by without using an SMS shortcode. Even if you could technically get it to work with a regular number, I suspect you would be shutdown as a spammer pumping out so many messages on a regular phone number.
A short code will let you send at at least 30 messages per second (1800/minute), and supposedly they can up that for you if you have a justified need.
https://www.twilio.com/sms/shortcodes
and this:
https://www.twilio.com/help/faq/sms/can-my-twilio-sms-messages-be-blacklisted-as-spam
Can my Twilio SMS messages be blacklisted as spam?
Recipient carriers always reserve the right to filter out messages
from certain numbers, and routinely do so to protect their users from
spam.
If you’ll be sending SMS messages as part of a bulk campaign (with 30
or more identical or similar messages going out within a few minutes),
we discourage you from using regular 10-digit numbers. Instead, we
highly recommend using an SMS short code.

Related

Can we send a bulk sms from Twilio to 5000 to 10000 numbers and group the message recipients to single message thread instead of individual threads?

We are currently using Twilio Message Resource (https://www.twilio.com/docs/sms/api/message-resource ) ‘MessageResource.Create’ to send SMS. It works well for single recipient. We would like to support Bulk SMS, where a user can send SMS to 5000 to 10000 Phone numbers.
Can we achieve this through Message Resource or are there any other services from Twilio?
Also, currently, with MessageResource.Create or Notify service, even if we send sms to multiple numbers, every message has a separate MessageSid due to which, bulk sms sent to each number creates a separate message thread.
Is there a common Id or some parameter using which we could identify all the numbers to which bulk sms was sent and group them together in a single message thread (like a group)?
Sending messages from a single Twilio Phone Number works well for low volumes of texts, but there are limitations imposed by carriers which limit the amount of segments you can send per second.
To increase the throughput you need to use multiple phone numbers to send messages from, but instead of building this solution yourself, you can use a Messaging Service.
First, create a messaging service, and then, add multiple phone numbers to your service to increase the message throughput. The more phone numbers in your service, the more messages can be sent in parallel.
Your code doesn't need to change a lot, but instead of specifying a phone number, you need to specify the Messaging Service by its SID:
var message = MessageResource.Create(
body: "Ahoy!",
messagingServiceSid: "MG9752274e9e519418a7406176694466fa",
to: new Twilio.Types.PhoneNumber("+441632960675")
);
Here's some more guidance on how to send messages at scale.
There's no way to group your messages together. You'll need to group them in your own data store and query them if you need that functionality.

Whats app bulk messages sender

I want to make windows based Whats App bulk messages sender application.
I tried WhatsApi (http://github.com/perezdidac/WhatsAPINet/) to do that, but I found too many limitations and problems.
I want to ask that, I there another way to send bulk whats app messages?
Sending bulk messages are against WhatsApps Terms of Service Agreement. WhatsApp offers users functionality to send broadcast messages, but with a maximum of recipients AND recipients will only receive your message if they have already saved your number in their contact list.
WhatsApp's Terms of Service Agreement states that you may not use the service to send bulk messages (in other words more messages than a normal person would be able to send during a specific time). This keeps their servers from being overwhelmed and keeps advertisers from abusing WhatsApp messages. You can, however, try to write a function to select x number of contacts and send the message, then repeat the function until all intended recipients have been messaged.

Sending thousands of emails from a program?

A website that I used my password on was compromised and the monkeys in charge had stored everything in plaintext. The list was released publicly online. Needless to say, my password and email were among them.
I would like to send emails to everyone else who was listed (thousands) and inform them that to continue using their password is unsafe. My language of choice would be C# and I would be sending them from my gmail with the help of this code: Sending email in .NET through Gmail
I can pretty much assume gmail will lock me out before I finish 10 in under a minute. Apart from sending emails out intermittently, how can I do this?
edit: I agree with the responses. I should instead send one email. Is there a limit to the amount of recipients I send an email to from gmail?
If happy to spend a bit of money for a reliable solution, you could integrate (very easily) with http://sendgrid.com. Provides you with heaps of features to track delivery of email and reporting/analysis of email opening, clicking etc.
Gmail does have limitations on how many emails you can send per day, and I would not recommend for your usage.
Or use some online mail marketing tool like MailChimp http://www.mailchimp.com
This service can easily send thousands of e-mails without problems. They have a free service too. Where you can store up to 2,000 subscribers. Send up to 12,000 emails per month.
It even has a REST API available for interacting with it from a custom app.
However I don't know if you are legally allowed to sent e-mails to the addresses on the list. I know it's for a good cause, but please be warned that this sort of e-mails can be considered as spam.
Again, don't build it yourself, but use off-the-shelf specialized services: I suggest looking at
Amazon Simple Email Service (SES)
which is part of Amazon Web Services (cloud storage, computing and more).
Amazon SES lets you send bulk and transactional email to customers in a quick and cost-effective manner
Service highlights include:
Simple
Inexpensive
Reliable
Scalable

How to develop my own sms Gateway?

I intend to develop an SMS gateway in c#, but i am doubtful about it's feasibility, because my initial research had shown that an SMS gateway had to cover for protocol differences.
So what exactly a gateway had to do, further if i use SMPP, so is it possible to send/receive SMS to/from any number in the world by simply using SMPP ?
A "true" SMS gateway will need to generate an SMPP request in the the correct format (yes there are several types like CIMD & EMI) and dispatch it to the mobile networks SMSMC for sending.
You would need a direct connection to, and contract with the network(s) you use on the back end. The countries you would be able to send to will depend on the what the network provider supports/allows.
Creating one is difficult & expensive, why not use an SMS aggregator who have already done all the hard work, for example http://www.clickatell.com/.
I don't know anything about creating a gateway but I'm fairly sure that the answer to so is it possible to send/receive SMS to/from any number in the world by simply using SMPP is no. I looked at a few online SMS services a year or two ago and all of the ones I looked at listed networks/countries where messages could/couldn't be sent to.

Best practices for using Amazon SQS - Polling the queue

I'm designing a service for sending out emails for our eCommerce site (order confirmations, alerts etc...)
The plan is to have a "SendEmail" method, that generates a chunk of XML representing the email to be sent, and sticks it on an Amazon SQS queue.
My web app(s) and other applications will use this to "send" emails.
I then require a way of checking the queue, and physically sending out the email messages.
(I know how I'm going to be dispatching emails)
I'm curious as to what the best way to "poll" the queue would be?
Should I create a windows service, and use something like Quartz.net to schedule it to check the queue every x number of minutes for example?
Is there a better way of doing this?
Sounds more like Amazon SNS is your huckleberry. (not really sure what that means, but I saw it in a movie once).
SQS is more of a "hopefully someone comes looking for this message at some point before it expires!" where SNS seems more like a "I need to make sure this gets to whoever needs it right away!"
It even includes email as a pre-built transport. (not even sure if that's the right word)
Amazon SNS provides a simple web services interface that can be used to create topics you want to notify applications (or people) about, subscribe clients to these topics, publish messages, and have these messages delivered over clients’ protocol of choice (i.e. HTTP, email, etc.). Amazon SNS delivers notifications to clients using a “push” mechanism that eliminates the need to periodically check or “poll” for new information and updates.
To be sure, they have the same freemium model as the rest of the services with limitations on email:
You can get started with Amazon SNS for free. Each month, Amazon SNS customers pay no charges for the first 100,000 Amazon SNS Requests, no charges for the first 100,000 Notifications over HTTP and no charges for the first 1,000 Notifications over Email.
If I were you, and if I REALLY wanted to make SQS work for this scenario, I would create a windows service that retrieves any messages from the queue every 10 minutes and then dispatches them.
If I could potentially use a different service, I would seriously consider using something like Postmark (Which I just found out about today thanks to a comment on Jeff Atwood’s blog post). You would just submit your email message info to their api, and they would do the rest. They even have a api for checking for bounced emails. I have never used this service, but I think it sounds great and would seriously consider using it in the future.
Looks like SES is what you need. http://aws.amazon.com/ses/ It is very inexpensive too compared to other similar services or building other systems.
You can use the AWS Beanstalk service to consume the tasks in the Queue.
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html
Windows service is the best way, but you must not take it. To run background job in ASP.NET environment there is HostingEnvironment.QueueBackgroundWorkItem. A good starting point to implement continues polling (via long polling) is sqs-consumer.

Categories

Resources