PHPackages                             opscale-co/nova-mailbox - 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. opscale-co/nova-mailbox

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

opscale-co/nova-mailbox
=======================

Capture and process emails in your Nova app

1.0.0(3mo ago)00MITPHPPHP &gt;=8.2CI passing

Since Feb 7Pushed 3mo agoCompare

[ Source](https://github.com/opscale-co/nova-mailbox)[ Packagist](https://packagist.org/packages/opscale-co/nova-mailbox)[ Docs](https://github.com/opscale-co/nova-mailbox)[ RSS](/packages/opscale-co-nova-mailbox/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (9)Versions (2)Used By (0)

Support us
----------

[](#support-us)

At Opscale, we’re passionate about contributing to the open-source community by providing solutions that help businesses scale efficiently. If you’ve found our tools helpful, here are a few ways you can show your support:

⭐ **Star this repository** to help others discover our work and be part of our growing community. Every star makes a difference!

💬 **Share your experience** by leaving a review on [Trustpilot](https://www.trustpilot.com/review/opscale.co) or sharing your thoughts on social media. Your feedback helps us improve and grow!

📧 **Send us feedback** on what we can improve at . We value your input to make our tools even better for everyone.

🙏 **Get involved** by actively contributing to our open-source repositories. Your participation benefits the entire community and helps push the boundaries of what’s possible.

💼 **Hire us** if you need custom dashboards, admin panels, internal tools or MVPs tailored to your business. With our expertise, we can help you systematize operations or enhance your existing product. Contact us at  to discuss your project needs.

Thanks for helping Opscale continue to scale! 🚀

Description
-----------

[](#description)

Nova Mailbox captures and processes inbound emails in your Nova app. It stores emails and attachments, and supports extraction rules to automatically extract structured data from incoming messages.

[![Demo](https://raw.githubusercontent.com/opscale-co/nova-mailbox/refs/heads/main/screenshots/nova-mailbox.gif)](https://raw.githubusercontent.com/opscale-co/nova-mailbox/refs/heads/main/screenshots/nova-mailbox.gif)

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

[](#installation)

[![Latest Version on Packagist](https://camo.githubusercontent.com/773fe8064d8093c79d94d1c3bd86c1997f87e3791781eda2306deea83f7fd25e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6f707363616c652d636f2f6e6f76612d6d61696c626f782e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/opscale-co/nova-mailbox)

You can install the package in to a Laravel app that uses [Nova](https://nova.laravel.com) via composer:

```
composer require opscale-co/nova-mailbox
```

Run the install command:

```
php artisan mailbox:install
```

Register the tool in the `tools` method of your `NovaServiceProvider`:

```
// in app/Providers/NovaServiceProvider.php

public function tools()
{
    return [
        new \Opscale\NovaMailbox\Tool(),
    ];
}
```

Configuration
-------------

[](#configuration)

The configuration file is published at `config/mailbox.php`:

```
return [
    // Storage path for emails and attachments (relative to disk)
    'path' => env('MAILBOX_STORAGE_PATH', 'mailbox'),

    // Extraction rules: classes implementing the Extractor interface
    'extraction_rules' => [
        // \App\Extractors\MyExtractor::class,
    ],
];
```

Templates
---------

[](#templates)

Extractions use templates from [Nova Dynamic Resources](https://github.com/opscale-co/nova-dynamic-resources) to define their fields. Refer to the composition example for setting up templates.

Extraction Rules
----------------

[](#extraction-rules)

You can create custom extraction rules by implementing the `Extractor` interface. Each rule defines when it should match an inbound email and how to process it.

```
use BeyondCode\Mailbox\InboundEmail;
use Opscale\NovaMailbox\Contracts\Extractor;
use Opscale\NovaMailbox\Models\Email;
use Opscale\NovaMailbox\Models\Extraction;

class MyExtractor implements Extractor
{
    public function matches(InboundEmail $email): bool
    {
        // Return true if this rule should process the email
    }

    public function process(InboundEmail $email): ?Extraction
    {
        // Extract data and create an Extraction record
        // Use $email->id() to find the stored Email record:
        $record = Email::where('message_id', $email->id())->firstOrFail();

        return Extraction::create([
            'email_id' => $record->id,
            'template_id' => $template->id,
            'status' => ExtractionStatus::Completed,
            'data' => [
                // extracted fields
            ],
        ]);
    }
}
```

Register your extractor in `config/mailbox.php`:

```
'extraction_rules' => [
    \App\Extractors\MyExtractor::class,
],
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

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

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

[](#contributing)

Please see [CONTRIBUTING](https://github.com/opscale-co/.github/blob/main/CONTRIBUTING.md) for details.

Security
--------

[](#security)

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

Credits
-------

[](#credits)

- [Opscale](https://github.com/opscale-co)

License
-------

[](#license)

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

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance81

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75% 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

Unknown

Total

1

Last Release

99d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3722594?v=4)[opscale](/maintainers/opscale)[@opscale](https://github.com/opscale)

---

Top Contributors

[![opscale-development](https://avatars.githubusercontent.com/u/181295122?v=4)](https://github.com/opscale-development "opscale-development (3 commits)")[![semantic-release-bot](https://avatars.githubusercontent.com/u/32174276?v=4)](https://github.com/semantic-release-bot "semantic-release-bot (1 commits)")

---

Tags

laravelpackagetoolnovaopscale

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/opscale-co-nova-mailbox/health.svg)

```
[![Health](https://phpackages.com/badges/opscale-co-nova-mailbox/health.svg)](https://phpackages.com/packages/opscale-co-nova-mailbox)
```

###  Alternatives

[dniccum/custom-email-sender

A tool for Laravel's Nova administrator panel that allows you to send custom email messages that within your application that leverages the applications existing settings and configurations.

6235.9k](/packages/dniccum-custom-email-sender)[inspheric/nova-email-field

A Laravel Nova email field.

33456.9k1](/packages/inspheric-nova-email-field)[coreproc/nova-notification-feed

A Laravel Nova package that adds a notification feed in your Nova app.

10149.1k](/packages/coreproc-nova-notification-feed)[kirschbaum-development/nova-mail

A Laravel Nova action for sending mail.

7484.2k](/packages/kirschbaum-development-nova-mail)

PHPackages © 2026

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