This is what I do -- I have one cheap GSM modem attached to an Ubuntu box, and I use stuff from the gsm-utils package to both send and receive messages. My problem is that I can't keep the system up 24x7; it's only active during working hours, five days a week.