PHPackages                             inovanti-bank/messaging - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. inovanti-bank/messaging

ActiveLibrary[Testing &amp; Quality](/categories/testing)

inovanti-bank/messaging
=======================

Componente para integração com serviços de mensageria com APIs externas como Twilio, SendGrid, AWS SES, etc.

v1.4.6(7mo ago)11.6k↓40%3MITPHPPHP ^8.2

Since Jan 17Pushed 7mo agoCompare

[ Source](https://github.com/Inovanti-Bank/inovanti-messaging)[ Packagist](https://packagist.org/packages/inovanti-bank/messaging)[ RSS](/packages/inovanti-bank-messaging/feed)WikiDiscussions production Synced 1mo ago

READMEChangelog (9)Dependencies (7)Versions (15)Used By (0)

Componente Messaging para Aplicações Laravel
============================================

[](#componente-messaging-para-aplicações-laravel)

[![Latest Stable Version](https://camo.githubusercontent.com/d0018c5a7d7918d701897539baee7049573a90db253d21eb1dd567e66e76e473/68747470733a2f2f706f7365722e707567782e6f72672f696e6f76616e74692d62616e6b2f6d6573736167696e672f76)](https://packagist.org/packages/inovanti-bank/messaging)[![Total Downloads](https://camo.githubusercontent.com/d1c46f4b2c8b345a868fdb7b38546237328aa03040378e5df66febe54ecc35b4/68747470733a2f2f706f7365722e707567782e6f72672f696e6f76616e74692d62616e6b2f6d6573736167696e672f646f776e6c6f616473)](https://packagist.org/packages/inovanti-bank/messaging)[![License](https://camo.githubusercontent.com/57b762780d6326fdf50179aca09098f4fbd418a0c04723a8ec0bfc45200f4239/68747470733a2f2f706f7365722e707567782e6f72672f696e6f76616e74692d62616e6b2f6d6573736167696e672f6c6963656e7365)](https://packagist.org/packages/inovanti-bank/messaging)[![PHP Version Require](https://camo.githubusercontent.com/377bb9b21756de4ee242f808c7940b73ace1cce50ff10155a2dfedcde4f1fd2b/68747470733a2f2f706f7365722e707567782e6f72672f696e6f76616e74692d62616e6b2f6d6573736167696e672f726571756972652f706870)](https://packagist.org/packages/inovanti-bank/messaging)

O `inovanti-messaging` é um pacote desenvolvido para facilitar a troca de mensagens e a integração com serviços externos de envio (SMS, e-mail, notificações, etc.) em projetos Laravel 11. O objetivo é fornecer uma API simples para gerenciar provedores de envio, rastreamento de mensagens e logs, sem complicar o fluxo de desenvolvimento.

 ```
graph TD;
    A["📱 **Aplicação Laravel**"] -->|"📤 Cria MessageData"| B["🔧 **MessageService**"]

    B -->|"📩 Tipo: SMS"| C["📨 **TwilioSmsService**"]
    B -->|"💬 Tipo: WhatsApp"| D["🟢 **TwilioWhatsAppService**"]
    B -->|"📧 Tipo: Email"| E[✉️ **SendGridEmailService**]

    C -->|"🔄 Envia para"| F["📡 **Twilio API (SMS)**"]
    D -->|"🔄 Envia para"| G["📡 **Twilio API (WhatsApp)**"]
    E -->|"🔄 Envia para"| H["📡 **SendGrid API**"]

    F -->|"✅ Resposta"| I["📊 **Retorna Status**"]
    G -->|"✅ Resposta"| I["📊 **Retorna Status**"]
    H -->|"✅ Resposta"| I["📊 **Retorna Status**"]

    I -->|"🚀 Dispara Evento"| J["📢 **MessageSent ou MessageFailed**"]

    J -->|"📜 Notifica Aplicação"| K["📝 **Callback/Log**"]
```

      Loading ---

📌 Índice
--------

[](#-índice)

1. [Instalação](#instala%C3%A7%C3%A3o)
2. [Configuração](#configura%C3%A7%C3%A3o)
3. [APIs Suportadas](#apis-suportadas)
4. [Uso](#uso)
    - [Exemplo de Envio de SMS](#exemplo-de-envio-de-sms)
    - [Exemplo de Envio de WhatsApp](#exemplo-de-envio-de-whatsapp)
    - [Exemplo de Envio de E-mail](#exemplo-de-envio-de-e-mail)
5. [Testes](#testes)
6. [Contribuindo](#contribuindo)
7. [Licença](#licen%C3%A7a)

---

🚀 Instalação
------------

[](#-instalação)

Para instalar este pacote via [Composer](https://getcomposer.org/), utilize o seguinte comando:

```
composer require inovanti-bank/messaging
```

⚙️ Configuração
---------------

[](#️-configuração)

### Service Provider

[](#service-provider)

Se você estiver usando o Laravel 11, o próprio framework já pode descobrir automaticamente o provider e a facade. Porém, caso queira registrar manualmente, adicione no array de `providers` do arquivo `config/app.php`:

```
'providers' => [
    // ...
    InovantiBank\Messaging\Providers\MessagingServiceProvider::class,
],
```

### Publicar Configurações (opcional)

[](#publicar-configurações-opcional)

Este pacote pode conter um arquivo de configuração que você pode publicar para customizar:

```
php artisan vendor:publish --provider="InovantiBank\Messaging\Providers\MessagingServiceProvider" --tag="config"
```

Após isso, edite o arquivo `config/messaging.php` conforme necessário.

Adicione as seguintes variáveis no `.env`:

```
# Twilio
TWILIO_ACCOUNT_SID=your_account_sid
TWILIO_AUTH_TOKEN=your_auth_token
TWILIO_SMS_FROM=+1234567890
TWILIO_WHATSAPP_FROM=+1234567890

# SendGrid
SENDGRID_API_KEY=your_sendgrid_api_key
SENDGRID_FROM_EMAIL=no-reply@seu-dominio.com
```

🌐 APIs Suportadas
-----------------

[](#-apis-suportadas)

Atualmente, a versão `1.0.0` do `inovanti-messaging` suporta as seguintes plataformas de envio de mensagens:

APITipo de MensagemServiços Disponíveis**Twilio**SMS`TwilioSmsService`**Twilio**WhatsApp`TwilioWhatsAppService`**SendGrid**E-mail`SendGridEmailService`Estamos constantemente adicionando novos provedores de envio ao pacote. Para obter a lista mais atualizada das APIs suportadas e instruções sobre como configurá-las, consulte o [repositório no GitHub](https://github.com/Inovanti-Bank/inovanti-messaging).

Se houver suporte a novos provedores, a documentação será atualizada para incluir instruções específicas sobre como utilizá-los.

📩 Uso
-----

[](#-uso)

Agora o envio de mensagens é feito através de serviços específicos (`TwilioSmsService`, `TwilioWhatsAppService`, `SendGridEmailService`), que são gerenciados pelo MessageService.

### Exemplo de Envio de SMS

[](#exemplo-de-envio-de-sms)

```
use InovantiBank\Messaging\Services\MessageService;
use InovantiBank\Messaging\Services\TwilioSmsService;
use InovantiBank\Messaging\Providers\TwilioProvider;
use InovantiBank\Messaging\DTOs\MessageData;
use Illuminate\Events\Dispatcher;

$twilioProvider = new TwilioProvider(
    env('TWILIO_ACCOUNT_SID'),
    env('TWILIO_AUTH_TOKEN')
);

$smsService = new TwilioSmsService($twilioProvider);

$messageService = new MessageService([
    'sms' => $smsService,
], new Dispatcher());

$messageData = new MessageData(
    type: 'sms',
    to: '+5511987654321',
    from: env('TWILIO_SMS_FROM'),
    content: 'Mensagem SMS de teste via Twilio.'
);

// Enviando mensagem
$response = $messageService->send($messageData);

print_r($response);
```

### Exemplo de Envio de WhatsApp

[](#exemplo-de-envio-de-whatsapp)

```
use InovantiBank\Messaging\Services\MessageService;
use InovantiBank\Messaging\Services\TwilioWhatsAppService;
use InovantiBank\Messaging\Providers\TwilioProvider;
use InovantiBank\Messaging\DTOs\MessageData;
use Illuminate\Events\Dispatcher;

$twilioProvider = new TwilioProvider(
    env('TWILIO_ACCOUNT_SID'),
    env('TWILIO_AUTH_TOKEN')
);

$whatsappService = new TwilioWhatsAppService($twilioProvider);

$messageService = new MessageService([
    'whatsapp' => $whatsappService,
], new Dispatcher());

$messageData = new MessageData(
    type: 'whatsapp',
    to: '+5511987654321',
    from: env('TWILIO_WHATSAPP_FROM'),
    content: 'Mensagem de teste via WhatsApp Twilio.'
);

$response = $messageService->send($messageData);

print_r($response);
```

### Exemplo de Envio de E-mail

[](#exemplo-de-envio-de-e-mail)

```
use InovantiBank\Messaging\Services\MessageService;
use InovantiBank\Messaging\Services\SendGridEmailService;
use InovantiBank\Messaging\Providers\SendGridProvider;
use InovantiBank\Messaging\DTOs\MessageData;
use Illuminate\Events\Dispatcher;

$sendGridProvider = new SendGridProvider(env('SENDGRID_API_KEY'));

$emailService = new SendGridEmailService($sendGridProvider);

$messageService = new MessageService([
    'email' => $emailService,
], new Dispatcher());

$messageData = new MessageData(
    type: 'email',
    to: 'destinatario@example.com',
    from: env('SENDGRID_FROM_EMAIL'),
    content: 'Este é um e-mail de teste enviado via SendGrid.',
    metadata: ['subject' => 'Teste de E-mail via SendGrid'],
    addCC: ['destinatario2@example.com', 'destinatario3@example.com'],
    addBCC: ['destinatario.oculto@example.com', 'destinatario.oculto1@example.com']
);

$response = $messageService->send($messageData);

print_r($response);
```

🧪 Testes
--------

[](#-testes)

O pacote vem com testes unitários simulada para garantir que tudo funcione conforme o esperado. Você pode executar os testes usando PHPUnit:

```
vendor/bin/phpunit
composer test
```

### Para testes unit:

[](#para-testes-unit)

```
vendor/bin/phpunit --testsuite=Unit
composer unit
```

🤝 Contribuindo
--------------

[](#-contribuindo)

Contribuições são bem-vindas! Se você deseja reportar um bug, solicitar um novo recurso ou contribuir com código, fique à vontade para abrir uma issue ou enviar um Pull Request.

1. Faça um Fork do projeto
2. Crie sua feature branch: `git checkout -b minha-nova-feature`
3. Commit suas mudanças: `git commit -m 'Adiciona nova feature'`
4. Faça o push para a branch: `git push origin minha-nova-feature`
5. Crie um novo Pull Request

📜 Licença
---------

[](#-licença)

Este projeto está licenciado sob a [MIT license](https://github.com/Inovanti-Bank/inovanti-messaging/tree/production?tab=MIT-1-ov-file).

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance64

Regular maintenance activity

Popularity23

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 54.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~9 days

Total

13

Last Release

221d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5fddebec36cd271b185d7e5b6fbc6ccdc4663c443238d7d8549fa267835d55b7?d=identicon)[jorgekania](/maintainers/jorgekania)

---

Top Contributors

[![JorgeInovanti](https://avatars.githubusercontent.com/u/163863984?v=4)](https://github.com/JorgeInovanti "JorgeInovanti (17 commits)")[![MuriloMelo-Dev](https://avatars.githubusercontent.com/u/186175607?v=4)](https://github.com/MuriloMelo-Dev "MuriloMelo-Dev (10 commits)")[![augustocbs](https://avatars.githubusercontent.com/u/78914881?v=4)](https://github.com/augustocbs "augustocbs (4 commits)")

---

Tags

phpunitlaraveleloquenttwiliosendgridmessagingaws-ses

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/inovanti-bank-messaging/health.svg)

```
[![Health](https://phpackages.com/badges/inovanti-bank-messaging/health.svg)](https://phpackages.com/packages/inovanti-bank-messaging)
```

###  Alternatives

[orchestra/testbench

Laravel Testing Helper for Packages Development

2.2k39.1M32.1k](/packages/orchestra-testbench)[imanghafoori/eloquent-mockery

Allows you to design your tests in an independent manner.

127636.4k2](/packages/imanghafoori-eloquent-mockery)[erikgall/eloquent-phpunit

Test Eloquent models, database schemas &amp; tables, relationships/foreign keys using PHPUnit.

2016.5k](/packages/erikgall-eloquent-phpunit)[guanguans/laravel-soar

SQL optimizer and rewriter for laravel. - laravel 的 SQL 优化器和重写器。

2227.8k](/packages/guanguans-laravel-soar)[code-distortion/adapt

A Laravel package that builds databases for your tests, improving their speed.

2835.5k](/packages/code-distortion-adapt)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
