PHPackages                             iperamuna/mailu-laravel - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. iperamuna/mailu-laravel

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

iperamuna/mailu-laravel
=======================

A Laravel SDK for the Mailu API

v1.1.0(2w ago)05↓100%MITPHPPHP ^8.2

Since Apr 13Pushed 2w agoCompare

[ Source](https://github.com/iperamuna/mailu-laravel)[ Packagist](https://packagist.org/packages/iperamuna/mailu-laravel)[ RSS](/packages/iperamuna-mailu-laravel/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (2)Dependencies (5)Versions (3)Used By (0)

Mailu Laravel SDK
=================

[](#mailu-laravel-sdk)

[![Latest Version on Packagist](https://camo.githubusercontent.com/74aff327d2a43c4fa6935205e3623cbf56130096b29ac138bd9031e667905490/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f69706572616d756e612f6d61696c752d6c61726176656c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/iperamuna/mailu-laravel)[![Total Downloads](https://camo.githubusercontent.com/80f57dfa8e6edc16b9bfc27c2d21773a8da5db32e7300f88863b88f2f7fcc352/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f69706572616d756e612f6d61696c752d6c61726176656c2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/iperamuna/mailu-laravel)[![License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)

A high-performance, developer-friendly Laravel SDK for the Mailu API. Designed for Indunil Peramuna with focus on DTOs, type safety, and clean architecture.

---

✨ Features
----------

[](#-features)

- **PHP**: ^8.2
- **Laravel**: ^12.0 || ^13.0
- **🚀 Full API Coverage**: Support for Users, Domains, Aliases, Alternatives, Relays, and Tokens.
- **🛡️ Type-Safe DTOs**: Heavily utilizes `spatie/laravel-data` for structured, validated data handling.
- **⚡ Built-in Caching**: Intelligent caching of `GET` requests to optimize performance.
- **🧱 Modular Architecture**: Cleanly separated concerns using traits (`HasUsers`, `HasDomains`, etc.).
- **🧪 Pest Powered**: Comprehensive test suite written in Pest PHP.
- **🧩 Clean Facade**: Intuitive `Mailu` facade for standard operations.

📦 Installation
--------------

[](#-installation)

You can install the package via composer:

```
composer require iperamuna/mailu-laravel
```

⚙️ Configuration
----------------

[](#️-configuration)

Publish the config file:

```
php artisan vendor:publish --tag="mailu-config"
```

Add your credentials to `.env`:

```
MAILU_API_URL=https://mail.yourdomain.com/api/v1
MAILU_API_TOKEN=your_token_here
MAILU_CACHE_ENABLED=true
```

📖 Usage Examples
----------------

[](#-usage-examples)

### 1. Simple Facade Usage

[](#1-simple-facade-usage)

The most common way to interact with the SDK.

```
use Iperamuna\Mailu\Facades\Mailu;

// List all users
$users = Mailu::listUsers(); // Returns Collection

// Create a new domain
Mailu::createDomain([
    'name' => 'example.com',
    'comment' => 'Managed by Laravel',
]);

// Generate DKIM keys
Mailu::generateDKIM('example.com');
```

### 2. Usage in a Controller

[](#2-usage-in-a-controller)

Inject the `MailuService` directly into your controller methods.

```
namespace App\Http\Controllers;

use Iperamuna\Mailu\MailuService;
use Illuminate\Http\Request;

class MailboxController extends Controller
{
    public function index(MailuService $mailu)
    {
        return view('mailboxes.index', [
            'users' => $mailu->listUsers(),
        ]);
    }

    public function store(Request $request, MailuService $mailu)
    {
        $mailu->createUser($request->only(['email', 'raw_password', 'displayed_name']));

        return back()->with('success', 'Mailbox created!');
    }
}
```

### 3. Usage in a Filament Resource

[](#3-usage-in-a-filament-resource)

Ideal for building custom admin interfaces. Since Mailu returns an array/collection, you can use Filament's Table Builder with custom data.

```
namespace App\Filament\Resources;

use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables\Columns\TextColumn;
use Iperamuna\Mailu\Facades\Mailu;
use Iperamuna\Mailu\Data\UserData;

class MailboxResource extends Resource
{
    public static function table(Table $table): Table
    {
        return $table
            ->content(fn () => Mailu::listUsers()) // Fetch from API
            ->columns([
                TextColumn::make('email')
                    ->searchable()
                    ->sortable(),
                TextColumn::make('displayed_name')
                    ->label('Name'),
                TextColumn::make('quota_bytes_used')
                    ->label('Usage')
                    ->formatStateUsing(fn ($state) => number_format($state / 1024 / 1024, 2) . ' MB'),
            ])
            ->actions([
                \Filament\Tables\Actions\DeleteAction::make()
                    ->action(fn (UserData $record) => Mailu::deleteUser($record->email)),
            ]);
    }
}
```

---

🧪 Testing
---------

[](#-testing)

```
composer test
```

🔒 Security
----------

[](#-security)

If you discover any security-related issues, please email .

👤 Credits
---------

[](#-credits)

- [Indunil Peramuna](https://iperamuna.online)

📄 License
---------

[](#-license)

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

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance97

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 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 ~43 days

Total

2

Last Release

14d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e7f282b7449477d5baaf64bdb40fcb7d9c8c638fb96a431413c7293344e3182f?d=identicon)[iperamuna](/maintainers/iperamuna)

---

Top Contributors

[![iperamuna](https://avatars.githubusercontent.com/u/3013395?v=4)](https://github.com/iperamuna "iperamuna (7 commits)")

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/iperamuna-mailu-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/iperamuna-mailu-laravel/health.svg)](https://phpackages.com/packages/iperamuna-mailu-laravel)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45344.0k1](/packages/pressbooks-pressbooks)[api-platform/laravel

API Platform support for Laravel

59156.3k10](/packages/api-platform-laravel)

PHPackages © 2026

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