Endroid CM SMS

1.6.1 2017-09-15 20:24 UTC


By endroid

Latest Stable Version Build Status Total Downloads Monthly Downloads License

This library enables sending SMS messages using the CM Telecom SMS service.


Use Composer to install the library.

$ composer require endroid/cm-sms

Then, require the vendor/autoload.php file to enable the autoloading mechanism provided by Composer. Otherwise, your application won't be able to find the classes of this library.

Of course you can also download the library and build your own autoloader.


use Endroid\CmSms\Client;
use Endroid\CmSms\Exception\RequestException;

$client = new Client();

$options = [
    'sender' => 'Endroid',
    'unicode' => 'auto',
    'minimum_number_of_message_parts' => 1,
    'maximum_number_of_message_parts' => 3,

$message = new Message();
$message->setBody('SMS Messaging is the future!');

// Send single message (to one or more recipients)
try {
    $client->sendMessage($message, $options);
} catch (RequestException $exception) {
    // handle exception

// Or bulk send multiple messages (to one or more recipients)
try {
    $client->sendMessages([$message, ...], $options);
} catch (RequestException $exception) {
    // handle exception


The following sending options are available.

  • sender: default sender
  • unicode: unicode handling (auto, force or never)
  • minimum_number_of_message_parts: min when splitting up long messages
  • maximum_number_of_message_parts: max when splitting up long messages

Symfony integration

Register the Symfony bundle in the kernel.

// app/AppKernel.php

public function registerBundles()
    $bundles = [
        // ...
        new Endroid\CmSms\Bundle\CmSmsBundle\EndroidCmSmsBundle(),


The default parameters can be overridden via the configuration.

    disable_delivery: false
    delivery_phone_numbers: []
    product_token: '00000000-0000-0000-0000-000000000000'
        sender: 'Endroid'
        unicode: 'auto'
        minimum_number_of_message_parts: 1
        maximum_number_of_message_parts: 3

Now you can retrieve the client as follows.

$client = $this->get('endroid.cm_sms.client');


Add the following section to your routing to be able to visit the routes provided by this bundle.

    resource: "@EndroidCmSmsBundle/Controller/"
    type:     annotation
    prefix:   /cm-sms


The production version makes use of built assets. Use the following commands to install dependencies and create a new build.

npm install
NODE_ENV=production node_modules/.bin/webpack


Version numbers follow the MAJOR.MINOR.PATCH scheme. Backwards compatibility breaking changes will be kept to a minimum but be aware that these can occur. Lock your dependencies for production and test your code when upgrading.


This bundle is under the MIT license. For the full copyright and license information please view the LICENSE file that was distributed with this source code.