Skip to content

Repository files navigation

metarush/notifier

Send multiple notifications using notifiers like email, Pushover, etc.

Install

Install via composer as metarush/notifier

Sample usage

Let's send an email and Pushover notification

use MetaRush\Notifier\Notifier;
use MetaRush\Notifier\Exception;
use MetaRush\Notifier\Pushover\Builder as PushoverNotifier;
use MetaRush\Notifier\Telegram\Builder as TelegramNotifier;
use MetaRush\Notifier\Email\Builder as EmailNotifier;
use MetaRush\EmailFallback\Builder as EmailBuilder;
use MetaRush\EmailFallback\Server;

// ------------------------------------------------

// define a Pushover notifier

// you can use `addAccount()` multiple times for additional accounts

$pushoverNotifier = (new PushoverNotifier)
                        ->addAccount('pushover_app_key', 'pushover_user_key')
                        ->setSubject('test subject')
                        ->setBody('test body')
                        ->build();

// ------------------------------------------------

// define an email notifier

// you can use multiple STMP servers for failover (see package `metarush/email-fallback` for more options)

$servers = [
        (new Server)
            ->setHost('smtp_host')
            ->setUser('smtp_user')
            ->setPass('smtp_pass'])
            ->setPort(465)
            ->setEncr('TLS')
];

$emailBuilder = (new EmailBuilder)
                    ->setServers($servers)
                    ->setTos(['test@example.com'])
                    ->setSubject('test subject')
                    ->setBody('test body')
                    ->setFromEmail('test@example.com');

$emailNotifier = (new EmailNotifier)
                    ->setEmailFallbackBuilder($emailBuilder)
                    ->build()

// ------------------------------------------------

// define a Telegram notifier

// you can use `addAccount()` multiple times for additional accounts

$telegramNotifier = (new TelegramNotifier)
                        ->addAccount('telegram_channel', 'telegram_bot_token')
                        ->setMessage('test message')
                        ->build();

// ------------------------------------------------

// put them together and send

$notifiers = [
    $pushoverNotifier,
    $emailNotifier,
    $telegramNotifier,
];

(new Notifier($notifiers))
    ->send();

Current notifiers

  • Email
  • Pushover
  • Telegram

Feel free to use or contribute your own notifier. Use the Pushover notifier as starting guide.

About

Send multiple notifications using notifiers like email, Pushover, etc.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages