Самый простой вариант (но не самый выгодный), это использовать сервисы типа sms.ru, у них есть готовые api для интеграции с твоим сервисом\программой, на который достаточно отправить post запрос с необходимыми параметрами с сервис сам произведет рассылку (естественно возьмет за это некий процент), подробное описание api с примерами кода на PHP тут
sms.ru/?panel=api&subpanel=method&show=sms/send
А если нужно максимально дешево и не платить процент стороннему сервису то нужно копать с сторону модемов типа siemens mc35, подключать его непосредственно к серверу с которого будет производиться рассылка (или не к серверу, а через преобразователь com to ethernet типа MOXA NPort 5110 Series
www.moxa.com/product/nport_5110.htm), и искать выгодный тарифный план для большой отправки sms, программная часть выглядит следующим образом если подключается непосредственно к серверу то нужна прога которая одной стороной цепляет модем другой вешается на определенный порт и слушает, дальше формируем AT команды отправки sms (ничего сложного мануал гуглиться) и посылаем на порт, или если через преобразователь ethernet то тоже самое только отправляем не на локальный порт а в сеть, мануал с примерами на PHP тут
subnets.ru/blog/?p=33