Yes there is a solution.
You need and GSM modem on you server(computer) with a SIM card (could pay a rent for a plan with free sms in any company [sprint, at&t...]). With the plan like on your cellphone you have free unlimited SMS, only pay a rent, better than pay for every single SMS.
GSM MODEMS:
USB (I made test with one like this)
3G WCDMA GSM WIFI 7.2 Mbps HSDPA USB Dongle
ZTE MF190 3 G GSM 7.2 Mbps USB Mobile Broadband Modem
Another with multiple SIMS cards:
Módems USB GSM 8 Puertos bulk sms
And another kind of modem:
M2M módem M2M RS232 Módem Q24plus
The APP (c#):
SMSapplication.zip
First connect to the COM port, the application show the status of the connection, in the second tab "Send SMS" put the cellphone number and the message, then press send.
The code(Button):
private void btnSendSMS_Click(object sender, EventArgs e)
{
try
{
if (objclsSMS.sendMsg(this.port, this.txtSIM.Text, this.txtMessage.Text))
{
this.statusBar1.Text = "Message has sent successfully";
}
else
{
this.statusBar1.Text = "Failed to send message";
}
}
catch (Exception ex)
{
ErrorLog(ex.Message);
}
}
Send Class:
public bool sendMsg(SerialPort port, string PhoneNo, string Message)
{
bool isSend = false;
try
{
string recievedData = ExecCommand(port,"AT", 300, "No phone connected");
recievedData = ExecCommand(port,"AT+CMGF=1", 300, "Failed to set message format.");
String command = "AT+CMGS=\"" + PhoneNo + "\"";
recievedData = ExecCommand(port,command, 300, "Failed to accept phoneNo");
command = Message + char.ConvertFromUtf32(26) + "\r";
recievedData = ExecCommand(port,command, 3000, "Failed to send message");
if (recievedData.EndsWith("\r\nOK\r\n"))
{
isSend = true;
}
else if (recievedData.Contains("ERROR"))
{
isSend = false;
}
return isSend;
}
catch (Exception ex)
{
throw ex;
}
}
I didn't make this app, I found on internet... I made test and It's worked.
To build your web with a gsm modem you have to considerate:
- Have a physical server with the modem connected (could be your computer)
- Pay a rent plan for SMS (Sim cards)
- Pay a static IP, or noIP, din DNS, whatever, to put you server online
The GSM modem recive AT Commands, thats what the c# application does, send the AT commands to the modem.
gsm modem at commands
I hope it helps