Tutorial section - SMS

Send SMS with SMPP using PHP

Sending SMS with the SMPP API using the PHP programming language
Tyr SMS Gateway

The php-smpp library can be used to make SMPP requests using PHP. This library's higher-level functions can be used to synchronously submit SMS to an SMS gateway or SMSC.

SMPP requirements and resources

SMPP is the Short Message Peer-to-Peer protocol for conveying SMS operations. An SMPP client can be used to connect to an SMSC or SMS gatewat using the SMPP protocol. An SMPP account can easily be obtained for using the Tyr SMS Gateway or SMSC Simulator. The following are required to send SMS with SMPP:

PHP requirements and resources

PHP is a programming language and can be used to quickly and easily add SMS support for programmatically sending and receiving SMS messages. Use it for transactional messaging and notifications between your application and mobiles. The following are required to send SMS using PHP:

  • PHP
    PHP programming/scripting language

Requirements and resources

The following are required to send SMS with SMPP using PHP:

  • php-smpp
    PHP-based SMPP client library for sending and receiving SMS using SMPP v3.4
  • Sockets
    PHP socket extension


Create the file sendsms.php containing the code below. Replace the hostname smscsim.melroselabs.com, port 2775, SYSTEMID and PASSWORD values with those from your SMPP API account. Alternatively, replace SYSTEMID and PASSWORD with those allocated to you for use with the Melrose Labs SMSC Simulator.

The following example PHP code opens an SMPP transmitter bind to smscsim.melroselabs.com on port 2775 (SMPP port), and then sends the message Hello World #$£ to mobile number 447712345678 from MelroseLabs. The message ID returned in $messageID is that returned from the SMS gateway or SMSC after a successful submission. The SMPP system ID and password for the SMPP account are contained in SYSTEMID and PASSWORD respectively.

	require_once 'smppclient.class.php';
	require_once 'gsmencoder.class.php';
	require_once 'sockettransport.class.php';
	// Construct transport and client
	$transport = new SocketTransport(array('smscsim.melroselabs.com'),2775);
	$smpp = new SmppClient($transport);
	// Open the connection
	// Prepare message
	$message = 'Hello World €$£';
	$encodedMessage = GsmEncoder::utf8_to_gsm0338($message);
	$from = new SmppAddress('MelroseLabs',SMPP::TON_ALPHANUMERIC);
	$to = new SmppAddress(447712345678,SMPP::TON_INTERNATIONAL,SMPP::NPI_E164);
	// Send
	$messageID = $smpp->sendSMS($from,$to,$encodedMessage,$tags);
	// Close connection

In order to receive delivery receipts for messages that are sent to a mobile, it is necessary to use a transceiver bind instead of a transmitter bind, or have a receiver bind in addition to a transmitter bind.

Get free SMPP account for SMSC Simulator >

Other APIs covered in our tutorials that can be used for sending and receiving SMS using PHP include: REST

Other languages covered in our tutorials that can be used for sending and receiving SMS with SMPP include: Python, Java, C++, C#, Perl, Go, Node.js, Ruby

Whatever the language or API, you can send SMS and receive SMS between applications and mobiles for a wide range of uses with a number of our services. Please consider using our Messaging, SMS gateway and Bulk SMS solutions.

If you are interested in testing your application's SMS support and are using the SMPP protocol, then we recommend that you take a look at the Melrose Labs SMSC Simulator service that can simulate SMS message delivery to mobiles (MT SMS) and simulate SMS messages from mobiles (MO SMS). The SMSC Simulator supports SMPP v3.3, v3.4 and v5, and has a high degree of SMPP protocol conformance. Later in 2020 we will be providing access to the Melrose Labs Tyr SMS Gateway for A2P, P2A, bulk, wholesale and business SMS, and for text marketing and other applications. The Melrose Labs Tyr SMS Gateway will support REST and SMPP APIs.

Follow us on LinkedIn for updates on Melrose Labs services and news.

Find out more...

Please provide your name.
Please provide a valid company name.
Please type your message.
Please provide a valid email address.