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.
Related
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.
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.
I have a Windows Phone application that can receive push messages. How can I know that user didn't open some push messages that he had recieved? (I mean that messages that user didn't open via TOAST)
UPDATED
Is there any other way to understand if user has recieved a push message and did't open it (did't clicl on TOAST)
Push messages are fire and forget and thus cannot be enumerated as you describe.
The only thing I can recommend is to append a server ID to the NavigationUri of each message so the application can communicate back to the server to mark the message as read. Listing unread messages would fall on you, however, as they would need to come from your services.
However, there are several limitations to this approach:
The user may ignore the message
The application might be running (toast push messages aren't displayed)
The user may have poor connectivity
In the above cases, the ID would never be marked as read. You could still probably use this information to list messages from your server though.
EDIT FOR UPDATED QUESTION
No, there isn't
I am looking into a way to more securely send emails from our application.
We are currently sending emails directly to an IIS SMTP server but are looking at ways to more securely deliver emails if the server goes down, restarts etc.
I was thinking a way to implement this would be to store the emails (with attachments) in a queue to be process by a separate process, or store the emails in the database to be then processed.
I was wanting to get some advice and any suggestions would be appreciated.
Thanks
We have a likewise case. We solved it by storing the emails in a database that keeps fault and retry status. We're using FreeSMTP to send the actual messages. Quicksoft also has a all-out product that handles errors itself and keeps its own message database if that is what you're looking for (not so free though ;-))
I have the need from an asp.net web site to send out many SMS messages at once, and also poll a POP3 account for an incoming mail, and then SMS that out to many recipients, one at a time.
The way I am thinking of doing this is a windows service that would connect to my sql back-end to see if there are SMS messages to be sent out, like every 10-20 seconds or so. If so, get all the messages in a list, delete them from the table, and then proceed to send them out.
Same way with the pop account.
Any ideas on how to best provide this service without causing blocking in the asp.net web page when it is kicked off (e.g. messages added to sql server)?
Platform is windows server 2003 R2, sql 2008 standard, asp.net 3.5 SP1.
Thanks for your advice.
We have implemented similar scenarios using SQL Server service broker's Queueing mechanism. The idea is that every inserted SMS record is caught by a trigger which inserts a message containing the SmsID into the service broker Queue.
You then need a stored procedure which receives messages from the Queue. If there are no messages, your procedure will run until the next entry is inserted. That's OK, since it does not take up resources to listen to the Queue.
Next you'll need a Windows service who continuously (recursively) calls the STP, assembles the SMS and sends it.
The Advantage of the Service Broker Queue over a flag in a table is thread safety. This way you could have as many instances of your Service as you want w/o having to worry too much about concurrency issues.
You can find a nice Service Broker tutoial here: http://www.developer.com/db/article.php/3640771
Instead of using an Sql Server for the queuing you could use MSMQ (Microsoft Message Queuing) for this.
MSMQ is quite easy to set up and once it is up and running it is more scalable than Sql Server.
So what you could do was to setup a new queue in MSMQ that would receive the messages you wanted to send. The message would normally be some sort of Message object that describe the message, the sender and the recipient.
Then you would either setup a service that would poll the queue at a regular interval or you could setup MSMQ to start a class of your choice each time a new Message was sent to the queue.
If you need a log of the messages you could have the service / sender object write to a log in sql server when the message was sent.