This package makes it easy to send notifications using JetSms with Laravel 5.5+, 6.x and 7.x.
You can install this package via composer:
composer require laravel-notification-channels/jet-sms
Add your desired client, username, password, originator (outbox name, sender name) and request timeout
configuration to your config/services.php
file:
...
'JetSms' => [
'client' => 'http', // or xml
'http' => [
'endpoint' => 'https://service.jetsms.com.tr/SMS-Web/HttpSmsSend',
],
'xml' => [
'endpoint' => 'www.biotekno.biz:8080/SMS-Web/xmlsms',
],
'username' => '',
'password' => '',
'originator' => "", // Sender name.
'timeout' => 60,
],
...
Now you can use the channel in your via() method inside the notification:
use NotificationChannels\JetSms\JetSmsChannel;
use NotificationChannels\JetSms\JetSmsMessage;
class ResetPasswordWasRequested extends Notification
{
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return [JetSmsChannel::class];
}
/**
* Get the JetSms representation of the notification.
*
* @param mixed $notifiable
* @return string|\NotificationChannels\JetSms\JetSmsMessage
*/
public function toJetSms($notifiable) {
return "Test notification";
// Or
return new ShortMessage($notifiable->phone_number, 'Test notification');
}
}
Don't forget to place the dedicated method for JetSms inside your notifiables. (e.g. User)
class User extends Authenticatable
{
use Notifiable;
public function routeNotificationForJetSms()
{
return "905123456789";
}
}
JetSms can also be used directly to send short messages.
Examples:
JetSms::sendShortMessage($to, $message);
JetSms::sendShortMessages([[
'recipient' => $to,
'message' => $message,
], [
'recipient' => $anotherTo,
'message' => $anotherMessage,
]]);
see: jet-sms-php documentation for more information.
JetSms Notification channel comes with handy events which provides the required information about the SMS messages.
- Message Was Sent (
NotificationChannels\JetSms\Events\MessageWasSent
) - Messages Were Sent (
NotificationChannels\JetSms\Events\MessageWasSent
) - Sending Message (
NotificationChannels\JetSms\Events\SendingMessage
) - Sending Messages (
NotificationChannels\JetSms\Events\SendingMessages
)
Example:
namespace App\Listeners;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use NotificationChannels\JetSms\Events\MessageWasSent;
class SentMessageHandler
{
/**
* Handle the event.
*
* @param MessageWasSent $event
* @return void
*/
public function handle(MessageWasSent $event)
{
$response = $event->response;
$message = $event->message;
}
}
$response->groupId() will throw BadMethodCallException if the client is set to 'http'. $response->messageReportIdentifiers() will throw BadMethodCallException if the client is set to 'xml'.
change client configuration with caution.
Please see CHANGELOG for more information what has changed recently.
$ composer test
If you discover any security related issues, please email erdemkeren@gmail.com instead of using the issue tracker.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.