PHPackages                             ibnuhalimm/laravel-thai-bulk-sms - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. ibnuhalimm/laravel-thai-bulk-sms

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ibnuhalimm/laravel-thai-bulk-sms
================================

Thai Bulk SMS Wrapper for Laravel

v1.2.1(4y ago)11.0kMITPHPPHP ^7.3|^8.0

Since Oct 2Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ibnuhalimm/laravel-thai-bulk-sms)[ Packagist](https://packagist.org/packages/ibnuhalimm/laravel-thai-bulk-sms)[ Docs](https://github.com/ibnuhalimm/laravel-thai-bulk-sms)[ RSS](/packages/ibnuhalimm-laravel-thai-bulk-sms/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelogDependencies (4)Versions (9)Used By (0)

Laravel - Thai Bulk SMS
=======================

[](#laravel---thai-bulk-sms)

[![Latest Version on Packagist](https://camo.githubusercontent.com/f431437e82f14eb3d96ca7bddb23c88426b5fd79ebe4c971ac8126ed274b9c13/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f69626e7568616c696d6d2f6c61726176656c2d746861692d62756c6b2d736d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ibnuhalimm/laravel-thai-bulk-sms)[![Total Downloads](https://camo.githubusercontent.com/ea42b66952ce42b9cf647f11a0c7c8b917f8e81cb9f24c8081f2f4f74697bb19/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f69626e7568616c696d6d2f6c61726176656c2d746861692d62756c6b2d736d732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/ibnuhalimm/laravel-thai-bulk-sms)

Laravel wrapper for [Thai Bulk SMS](https://www.thaibulksms.com/).

Contents
--------

[](#contents)

- [Requirements](#requirements)
- [Installation](#installation)
- [Setting Up](#setting-up)
- [Usage](#usage)
- [Testing](#testing)
- [Changelog](#changelog)
- [Contributing](#contributing)
- [Security](#security)
- [Credits](#credits)
- [License](#license)

Requirements
------------

[](#requirements)

1. [Sign Up](https://account.thaibulksms.com/register/) for the Thai Bulk SMS Account
2. Create a Api Key and Secret Key in Setting section

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require ibnuhalimm/laravel-thai-bulk-sms
```

Optionally, you can publish the config file of this package with this command:

```
php artisan vendor:publish --provider="Ibnuhalimm\LaravelThaiBulkSms\ThaiBulkSmsServiceProvider"
```

Setting up
----------

[](#setting-up)

Put your `API Key`, `Secret Key`, and `THAI_BULK_SENDER` to `.env` file:

```
THAI_BULK_API_KEY=
THAI_BULK_SECRET_KEY=
THAI_BULK_SENDER=
```

Usage
-----

[](#usage)

1. You can directly use the `ThaiBulkSms` Facade (the alias or class itself):

    ```
    use Ibnuhalimm\LaravelThaiBulkSms\Facades\ThaiBulkSms;

    // Send the sms to single recipient
    $phoneNumber = '+6612345678';
    $message = 'Hi, our message here.';
    ThaiBulkSms::send($phoneNumber, $message);

    // Send the sms to multiple phone number
    $phoneNumber = [
        '+6612345678',
        '+6690111213',
    ];
    $message = 'Hi, our message here.';
    ThaiBulkSms::send($phoneNumber, $message);
    ```

    The response format of this method will be like [Thai Bulk SMS API's Response](https://assets.thaibulksms.com/documents/ThaibulksmsAPIDocument_V2.0_EN.pdf).
2. Notifications
    Let's take a look at the implementation as Notifications Channel.

    ```
    use Ibnuhalimm\LaravelThaiBulkSms\ThaiBulkSmsChannel;
    use Ibnuhalimm\LaravelThaiBulkSms\ThaiBulkSmsMessage;
    use Illuminate\Notifications\Notification;

    class VerifyMobileNumber extends Notification
    {
        public function via()
        {
            return [ThaiBulkSmsChannel::class];
        }

        public function toThaiBulkSms($notifiable)
        {
            return (new ThaiBulkSmsMessage())
                ->message("Your OTP to complete the registration is {$this->otp}");
        }
    }
    ```

    In order to let the notification know which mobile phone number are you sending to, by default the channel will look for the `mobile_number` attribute of Notifiable model. If you want to override this behaviour, add the `routeNotificationForThaiBulkSms` method in your Notifiable model.

    ```
    public function routeNotificationForThaiBulkSms()
    {
        return $this->phone;
    }
    ```

    or set the recipient mobile number directly to the notifiable instance using `to` method

    ```
    ...
    public function toThaiBulkSms($notifiable)
    {
        return (new ThaiBulkSmsMessage())
            ->message("Your OTP to complete the registration is {$notifiable->otp}")
            ->to($notifiable->phone); // add this
    }
    ...
    ```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Ibnu Halim Mustofa](https://github.com/ibnuhalimm)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~29 days

Recently: every ~49 days

Total

8

Last Release

1481d ago

Major Versions

v0.0.1 → v1.0.02021-10-04

PHP version history (2 changes)v0.0.1PHP ^7.4|^8.0

v1.0.0PHP ^7.3|^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/14322078?v=4)[IBNU HALIM MUSTOFA](/maintainers/ibnuhalimm)[@ibnuhalimm](https://github.com/ibnuhalimm)

---

Top Contributors

[![ibnuhalimm](https://avatars.githubusercontent.com/u/14322078?v=4)](https://github.com/ibnuhalimm "ibnuhalimm (17 commits)")

---

Tags

smsibnuhalimmlaravel-thai-bulk-smsthai-bulk-sms

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ibnuhalimm-laravel-thai-bulk-sms/health.svg)

```
[![Health](https://phpackages.com/badges/ibnuhalimm-laravel-thai-bulk-sms/health.svg)](https://phpackages.com/packages/ibnuhalimm-laravel-thai-bulk-sms)
```

###  Alternatives

[nativephp/mobile

NativePHP for Mobile

82724.0k43](/packages/nativephp-mobile)[bensampo/laravel-embed

Painless responsive embeds for videos, slideshows and more.

142146.8k](/packages/bensampo-laravel-embed)[glhd/conveyor-belt

14797.0k](/packages/glhd-conveyor-belt)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[ankurk91/laravel-ses-webhooks

Handle AWS SES webhooks in Laravel php framework

2534.2k](/packages/ankurk91-laravel-ses-webhooks)[amirbagh75/smsir-php

Unofficial sms.ir PHP Package

181.2k](/packages/amirbagh75-smsir-php)

PHPackages © 2026

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