```php
use BulkGate\Sms\Sender;
```

Pour envoyer un message de type `BulkGate\Sms\IMessage`

 - [`BulkGate\Sms\Message`](https://www.bulkgate.com/fr/documentation/php-sdk/php-sdk-message/2.0/)
 - [`BulkGate\Sms\BulkMessage`](https://www.bulkgate.com/fr/documentation/php-sdk/php-sdk-message-groupe/2.0/)

vous devez créer un service d'envoi (sender), ce qui peut se faire de deux manières :

 - [Nette framework](https://www.bulkgate.com/fr/documentation/php-sdk/php-sdk-installation-nette/1.0/) - si vous utilisez le [framework Nette](https://nette.org/)
 - [PHP](https://www.bulkgate.com/fr/documentation/php-sdk/php-sdk-installation/1.0/) - dans les autres cas
 
```php
/** @var BulkGate\Message\Connection $connection */
$sender = new BulkGate\Sms\Sender($connection);
```
 
## Envoi des messages
 
Pour envoyer le message, utilisez la méthode `send()`, qui reçoit des messages de type `BulkGate\Sms\IMessage`.
 
```php
/** 
  * @var BulkGate\Sms\Sender $sender 
  * @var BulkGate\Sms\IMessage|BulkGate\Sms\Message|BulkGate\Sms\BulkMessage $message
  */
$response = $sender->send($message);
```

### Réponse pour `BulkGate\Sms\Message`
```php
BulkGate\Message\Response Object
(
    [data:BulkGate\Message\Response:private] => Array
    (
        [sms_id] => tmpde8f0dca011
        [price] => 0.033
        [credit] => 215.8138
        [number] => 420777777777
    )
)
```

### Réponse pour `BulkGate\Sms\BulkMessage`
```php
BulkGate\Message\Response Object
(
    [data:BulkGate\Message\Response:private] => Array
    (
        [total] => Array
        (
            [price] => 0.033
            [status] => Array
            (
                [sent] => 0
                [accepted] => 1
                [scheduled] => 0
                [error] => 0
            )
        )
        [response] => Array
        (
            [0] => Array
            (
                [status] => accepted
                [sms_id] => tmpde8f0b47b12
                [price] => 0.033
                [credit] => 215.8138
                [number] => 420777777777
            )
        )
    )
)
```

## Unicode

Pour configurer l'[Unicode](https://www.bulkgate.com/fr/centre-d-aide/sms/unicode/), appelez la méthode `unicode()`.

```php
/** @var BulkGate\Sms\Sender $sender */
$sender->unicode(); // Activer
$sender->unicode(true); // Activer
$sender->unicode(false); // Désactiver
```

 ## Paramètres de l'expéditeur
 
Le paramétrage du type d'expéditeur est décrit dans ce [chapitre](https://www.bulkgate.com/fr/documentation/php-sdk/php-sdk-parametres-expediteur/).
 
 ```php
/** 
  * @var BulkGate\Sms\Sender $sender
  * @var SenderSettings\CountrySenderSettings|SenderSettings\StaticSenderSettings $settings
  */
$sender->setSenderSettings($settings);
```

## Pays par défaut

Si vous indiquez les numéros de téléphone au format national, le système ne sait pas où envoyer les messages. C'est pourquoi, à moins que le préfixe international ne soit explicitement renseigné, vous pouvez définir pour le type d'expéditeur le pays par défaut vers lequel les messages seront acheminés.

 ```php
 /** @var BulkGate\Sms\Sender $sender */
 $sender->setDefaultCountry(BulkGate\Sms\Country::CZECH_REPUBLIC); // via BulkGate\Sms\Country
 $sender->setDefaultCountry('cz'); // ISO 3166-1 alpha-2 
 ``` 
 
 ## Validation des numéros
 
 Si vous avez besoin de vérifier qu'un numéro de téléphone correspond au format du pays, utilisez la méthode `checkPhoneNumbers()`.
 
 ```php
 /** @var BulkGate\Sms\Sender $sender */
 $sender->checkPhoneNumbers($numbers, $iso);
 ``` 
 
Où `$numbers` peut être :
- un numéro de téléphone sous forme de chaîne `"420777777777"`
- un numéro de téléphone de type `BulkGate\Sms\Message\PhoneNumber`
- un tableau de numéros de téléphone `['420777777777','420777777778','420777777779']`
- un tableau de numéros de téléphone de type `BulkGate\Sms\Message\PhoneNumber`

`$iso` a la même signification que le [pays par défaut](#pays-par-defaut)

Le résultat est alors `BulkGate\Message\Response`

```php
BulkGate\Message\Response Object
(
    [data:BulkGate\Message\Response:private] => Array
    (
        [420777777777] => Array
        (
            [number] => 420777777777
            [iso] => cz
            [prefix] => 420
            [area] => 420
            [length] => 12
            [area_found] => true
        )
        [77777777] => Array
        (
            [number] => 42177777777 
            [iso] => sk
            [prefix] => 421
            [area] => 421
            [length] => 8
            [area_found] => false
        )
    )
)
```

La valeur `area_found` indique si le numéro respecte le format propre au pays.
