Search by

andreasnij / an-sms

andreasnij

A PHP library to send and receive SMS text messages through various gateways/providers.

Package info

github.com/andreasnij/an-sms

pkg:composer/andreasnij/an-sms

Statistics

Installs: 8 799

Dependents: 2

Suggesters: 0

Stars: 9

Open Issues: 1

2.0 2026-04-03 12:17 UTC

This package is auto-updated.

Last update: 2026-09-30 06:07:17 UTC


README

Version

An extendable library for sending and receiving SMS messages.

Supported SMS gateways

Send SMS Delivery reports Receive SMS Premium SMS
46elks ✔ ✔ ✔
Cellsynt ✔ ✔ ✔ ✔
Vonage (formerly Nexmo) ✔ ✔ ✔
Twilio ✔ ✔ ✔
Telenor SMS Pro ✔ ✔

You can add and use your own gateway. This library enables easy switching between different gateways.

Installation

Add the package as a requirement to your composer.json:

$ composer require andreasnij/an-sms

If you want to use the 46elks, Cellsynt or Telenor SMS Pro gateway you also you need implementations of PSR-7: HTTP message interfaces, PSR-17: HTTP Factories and PSR-18: HTTP Client. A popular package for this is Guzzle. You can install it with:

$ composer require guzzlehttp/guzzle:^7.0 guzzlehttp/psr7:^2.0

You may choose to use any other implementations of the PSR interfaces though.

If you want to use the Twilio gateway you also need to install the Twilio SDK:

$ composer require twilio/sdk

If you want to use the Vonage gateway you also need to install the Vonage client:

$ composer require vonage/client-core

Usage

use AnSms\{
    SmsTransceiver,
    Message\Message,
    Message\PremiumMessage,
    Gateway\CellsyntGateway
};

$gateway = new CellsyntGateway('username', 'password');
$smsTransceiver = new SmsTransceiver($gateway);

// Send SMS
$message = Message::create('46700000000', 'Hello world!');
$smsTransceiver->sendMessage($message);

// Receive SMS
$receivedMessage = $smsTransceiver->receiveMessage($_GET);

// Receive SMS delivery report
$deliveryReport = $smsTransceiver->receiveDeliveryReport($_GET);

// Send Premium SMS
$premiumMessage = PremiumMessage::createFromIncomingMessage(
    'Thanks for your payment!', 
    5, 
    $receivedMessage
);
$smsTransceiver->sendMessage($premiumMessage);

Upgrading

Please see UPGRADING for details.

Author

Andreas Nilsson (https://github.com/andreasnij)

License

This software is licensed under the MIT license - see the LICENSE file for details.