PHPackages                             clarkwinkelmann/flarum-ext-external-email-validation - 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. clarkwinkelmann/flarum-ext-external-email-validation

ActiveFlarum-extension[Mail &amp; Notifications](/categories/mail)

clarkwinkelmann/flarum-ext-external-email-validation
====================================================

Validate email with a call to an external API

1.0.0(4y ago)3264↑733.3%MITPHP

Since Jun 21Pushed 4y ago1 watchersCompare

[ Source](https://github.com/clarkwinkelmann/flarum-ext-external-email-validation)[ Packagist](https://packagist.org/packages/clarkwinkelmann/flarum-ext-external-email-validation)[ RSS](/packages/clarkwinkelmann-flarum-ext-external-email-validation/feed)WikiDiscussions main Synced 1mo ago

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

External Email Validation
=========================

[](#external-email-validation)

[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667) [![Latest Stable Version](https://camo.githubusercontent.com/a4cf7e7160090ce5b479ba978ce3069921cef1e17075d10617f5e3dbf0fd7bd1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f636c61726b77696e6b656c6d616e6e2f666c6172756d2d6578742d65787465726e616c2d656d61696c2d76616c69646174696f6e2e737667)](https://packagist.org/packages/clarkwinkelmann/flarum-ext-external-email-validation) [![Total Downloads](https://camo.githubusercontent.com/ef11545a6bc8e527bb0fbaceee0aedfadb73976df5053c106fae55cf57b371fa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f636c61726b77696e6b656c6d616e6e2f666c6172756d2d6578742d65787465726e616c2d656d61696c2d76616c69646174696f6e2e737667)](https://packagist.org/packages/clarkwinkelmann/flarum-ext-external-email-validation) [![Donate](https://camo.githubusercontent.com/0d6e4d8b50b5983a58205941b1a581b1305903393b7a39da574e3f60af3c7f5b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f70617970616c2d646f6e6174652d79656c6c6f772e737667)](https://www.paypal.me/clarkwinkelmann)

This extension adds a rule to Flarum email validation that will use an external API request to validate the email.

This rule will apply everywhere an email is checked against the `UserValidator` including registration and email change requests.

The format of the external API request can be customized to meet a range of needs.

The data is expected to be passed in one of two ways: via query string, or via HTTP body.

The response can be read in one of two ways: a JSON key in the response, or the HTTP status code.

Additionally, an error message can optionally be read from a JSON key in the response. Otherwise, a default error message can be provided in the extension settings.

To inject the email value inside the **URI** or **Body** settings, use one of the following strings in the template:

- `{{ email | urlencode }}`: This value will be replaced with the email value passed through PHP's `urlencode()` method
- `{{ email | json }}`: This value will be replaced with the email value passed through PHP's `json_encode()`. This means the JSON string delimiters will be included!
- `{{ email | raw }}`: This value will be replaced with the email value without any modification. Don't use this in the URI or JSON payload if you don't know what you're doing.

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

[](#installation)

```
composer require clarkwinkelmann/flarum-ext-external-email-validation

```

Support
-------

[](#support)

This extension is under **minimal maintenance**.

It was developed for a client and released as open-source for the benefit of the community. I might publish simple bugfixes or compatibility updates for free.

You can [contact me](https://clarkwinkelmann.com/flarum) to sponsor additional features or updates.

Support is offered on a "best effort" basis through the Flarum community thread.

Integration tests
-----------------

[](#integration-tests)

This extension has integration tests that rely on a local webserver running.

Run `composer test:server` to start the PHP development server on port 8000 with the docroot set to the `fixtures` folder.

Then you can run `composer test:setup` and `composer test` like regular Flarum integration tests.

Links
-----

[](#links)

- [GitHub](https://github.com/clarkwinkelmann/flarum-ext-external-email-validation)
- [Packagist](https://packagist.org/packages/clarkwinkelmann/flarum-ext-external-email-validation)
- [Discuss](https://discuss.flarum.org/d/27832)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity51

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

Unknown

Total

1

Last Release

1786d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0538135c1debcef5602dce7ece027909cc832b7a6284ab9189a19aa8de98d60d?d=identicon)[clarkwinkelmann](/maintainers/clarkwinkelmann)

---

Top Contributors

[![clarkwinkelmann](https://avatars.githubusercontent.com/u/5264300?v=4)](https://github.com/clarkwinkelmann "clarkwinkelmann (2 commits)")

---

Tags

validationemailintegrationflarum

### Embed Badge

![Health badge](/badges/clarkwinkelmann-flarum-ext-external-email-validation/health.svg)

```
[![Health](https://phpackages.com/badges/clarkwinkelmann-flarum-ext-external-email-validation/health.svg)](https://phpackages.com/packages/clarkwinkelmann-flarum-ext-external-email-validation)
```

###  Alternatives

[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[kickbox/kickbox

Official kickbox API library client for PHP

591.0M4](/packages/kickbox-kickbox)[verifalia/sdk

Verifalia provides a simple HTTPS-based API for validating email addresses and checking whether they are deliverable or not. This library allows to easily integrate with Verifalia and verify email addresses in real-time.

4349.8k](/packages/verifalia-sdk)[kouz/laravel-mailgun-email-validation

Laravel email validation that uses the Mailgun API for a three-step validation check.

11141.0k1](/packages/kouz-laravel-mailgun-email-validation)[ashallendesign/laravel-mailboxlayer

A lightweight Laravel package for validating emails using the Mailbox Layer API.

762.0k](/packages/ashallendesign-laravel-mailboxlayer)[martian/spammailchecker

A laravel package that protect users from entering non-existing/spam email addresses.

422.0k](/packages/martian-spammailchecker)

PHPackages © 2026

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