I am currently working on a large project and part of the project is to send simple text message notices using PHP.  Our client had looked into a number of expensive services to send simple SMS messages but most were cost prohibitive for a start-up venture.

As usual, I was not satisfied paying for something that I should be able to do on my own. So I started thinking about how the messaging systems worked and realized that we could just use the carriers built in email addresses for MMS messaging.  This is a great, cost effective method for sending text messages but it does require that you know the user’s carrier for the message to be successfully delivered.  In our case, we are able to ask for that in the web form which we are using to collect the user’s phone number but it may not work for every application. 

Basically the solution is to send an email using the built in mail function in PHP or any common method of sending email.  The email address you would send to would be the 10 digit mobile number followed by the carriers specific email address. (A list is included below)

Email addresses for the primary U.S. based cell phone carriers:
Alltel = xxxxxxxxxx@message.alltel.com
AT&T = xxxxxxxxxx@mms.att.net or xxxxxxxxxx@txt.att.net
Boost Mobile = xxxxxxxxxx@myboostmobile.com
Centennial Wireless = xxxxxxxxxx@myblue.com
Einstein PCS = xxxxxxxxxx@einsteinmms.com
Nextel = xxxxxxxxxx@messaging.nextel.com
Sprint = xxxxxxxxxx@messaging.sprintpcs.com or xxxxxxxxxx@pm.sprint.com
T-Mobile = xxxxxxxxxx@tmomail.net
US Cellular = xxxxxxxxxx@mms.uscc.net
Verizon Wireless = xxxxxxxxxx@vtext.com
Virgin Mobile = xxxxxxxxxx@vmobl.com

The simple PHP code to send the email:

<?PHP
     //SUBJECT AND BODY OF EMAIL SHOULD BE LESS THAN 160 CHARACTERS TOTAL
     $subject = "Text Message Subject";
     $message = "Text Message Content"; 
 
     //SENDS TEXT MESSAGE TO 503-869-4212
     mail("5038694212@txt.att.net",$subject,$message,"From: email@site.net");
?>