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

Para enviar un mensaje del tipo `BulkGate\Sms\IMessage`

 - [`BulkGate\Sms\Message`](https://www.bulkgate.com/es/documentacion/php-sdk/php-sdk-mensaje/2.0/)
 - [`BulkGate\Sms\BulkMessage`](https://www.bulkgate.com/es/documentacion/php-sdk/php-sdk-mensaje-masivo/2.0/)

es necesario crear un objeto Sender, lo que puede hacerse de dos maneras:

 - [Nette framework](https://www.bulkgate.com/es/documentacion/php-sdk/php-sdk-instalacion-en-nette/1.0/): si utiliza [Nette framework](https://nette.org/)
 - [PHP](https://www.bulkgate.com/es/documentacion/php-sdk/php-sdk-instalacion/1.0/): en los demás casos
 
```php
/** @var BulkGate\Message\Connection $connection */
$sender = new BulkGate\Sms\Sender($connection);
```
 
## Envío de mensajes
 
Para enviar el mensaje, utilice el método `send()`, que recibe mensajes del tipo `BulkGate\Sms\IMessage`.
 
```php
/** 
  * @var BulkGate\Sms\Sender $sender 
  * @var BulkGate\Sms\IMessage|BulkGate\Sms\Message|BulkGate\Sms\BulkMessage $message
  */
$response = $sender->send($message);
```

### Respuesta a `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
    )
)
```

### Respuesta a `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

Para configurar [Unicode](https://www.bulkgate.com/es/centro-de-ayuda/sms/unicode/), llame al método `unicode()`.

```php
/** @var BulkGate\Sms\Sender $sender */
$sender->unicode(); // Activar
$sender->unicode(true); // Activar
$sender->unicode(false); // Desactivar
```

 ## Configuración del remitente
 
La configuración del tipo de remitente se describe en este [capítulo](https://www.bulkgate.com/es/documentacion/php-sdk/php-sdk-configuracion-del-remitente/).
 
 ```php
/** 
  * @var BulkGate\Sms\Sender $sender
  * @var SenderSettings\CountrySenderSettings|SenderSettings\StaticSenderSettings $settings
  */
$sender->setSenderSettings($settings);
```

## País predeterminado

Si introduce los números de teléfono en formato nacional, el sistema no sabe adónde enviar los mensajes. Por ello, si el prefijo internacional no se indica explícitamente, puede definir para el tipo de remitente el país predeterminado al que se dirigirán los mensajes.

 ```php
 /** @var BulkGate\Sms\Sender $sender */
 $sender->setDefaultCountry(BulkGate\Sms\Country::CZECH_REPUBLIC); // mediante BulkGate\Sms\Country
 $sender->setDefaultCountry('cz'); // ISO 3166-1 alpha-2 
 ``` 
 
 ## Validación de números
 
 Si necesita comprobar si un número de teléfono se ajusta al formato del país, utilice el método `checkPhoneNumbers()`.
 
 ```php
 /** @var BulkGate\Sms\Sender $sender */
 $sender->checkPhoneNumbers($numbers, $iso);
 ``` 
 
Donde `$numbers` puede ser:
- un número de teléfono en una cadena `"420777777777"`
- un número de teléfono del tipo `BulkGate\Sms\Message\PhoneNumber`
- un array de números de teléfono `['420777777777','420777777778','420777777779']`
- un array de números de teléfono del tipo `BulkGate\Sms\Message\PhoneNumber`

`$iso` tiene el mismo significado que el [país predeterminado](#pais-predeterminado)

El resultado es entonces `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
        )
    )
)
```

El valor `area_found` indica la validez del formato del número específico del país.
