承接 erag/laravel-disposable-email 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

erag/laravel-disposable-email

最新稳定版本:v3.8.0

Composer 安装命令:

composer require erag/laravel-disposable-email

包简介

A Laravel package to detect and block disposable email addresses.

README 文档

README

Screenshot 2024-10-04 at 10 34 23 PM

Packagist License Latest Stable Version Total Downloads

A Laravel package to detect and block disposable (temporary) email addresses during validation or runtime logic.

Already contains 110,646+ disposable email domains! 🔥

✅ Features

  • 🔥 110,646+ known disposable domains already included
  • 🧠 Smart validation rule for form requests
  • ⚙️ Runtime email checking via helper and facade
  • 🧩 Blade directive support for conditionals
  • 🌐 Auto-sync with remote domain lists
  • 📝 Add your own custom blacklist with ease
  • 🧠 Optional caching for performance
  • ⚡️ Zero-configuration setup with publishable config
  • Compatible with Laravel 10, 11, and 12

🚀 Installation

composer require erag/laravel-disposable-email

Register the Service Provider

For Laravel (Optional) v11.x, v12.x

Ensure the service provider is registered in your /bootstrap/providers.php file:

use EragLaravelDisposableEmail\LaravelDisposableEmailServiceProvider;

return [
    // ...
    LaravelDisposableEmailServiceProvider::class,
];

For Laravelv v10.x

Ensure the service provider is registered in your config/app.php file:

'providers' => [
    // ...
    EragLaravelDisposableEmail\LaravelDisposableEmailServiceProvider::class,
],

🛠 Configuration

Publish the config file:

 php artisan erag:install-disposable-email  

This will create config/disposable-email.php.

⚙ Usage

1. Form Request Validation

✅ String-based Rule:

$request->validate([
    'email' => 'required|email|disposable_email',
]);
$request->validate([
    'email' => ['required', 'email', 'disposable_email'],
]);

✅ Custom Rule:

use EragLaravelDisposableEmail\Rules\DisposableEmailRule;

$request->validate([
    'email' => ['required', 'email', new DisposableEmailRule()],
]);

2. Direct Runtime Check

use EragLaravelDisposableEmail\Rules\DisposableEmailRule;

if (DisposableEmailRule::isDisposable('test@tempmail.com')) {
    // Do something if email is disposable
}

Or via facade:

use DisposableEmail;

if (DisposableEmail::isDisposable('agedmail.com')) {
    // Do something
}

3. Blade Directive

@disposableEmail('amit@0-mail.com')
    <p class="text-red-600">Disposable email detected!</p>
@else
    <p class="text-green-600">Valid email.</p>
@enddisposableEmail

🔄 Sync From Remote (Optional)

Update the list manually

php artisan erag:sync-disposable-email-list

🔗 Config Options (config/disposable-email.php)

return [
    'blacklist_file' => storage_path('app/blacklist_file),

    'remote_url' => [
       'https://raw.githubusercontent.com/eramitgupta/disposable-email/main/disposable_email.txt',
    ],
    
    'cache_enabled' => false,
    'cache_ttl' => 60,
];

Note: The .txt files from remote_url must follow this format:
Each line should contain only a domain name, like:

0-00.usa.cc
0-30-24.com
0-attorney.com
0-mail.com
00-tv.com
00.msk.ru
00.pe
00000000000.pro
000728.xyz
000777.info
00082cc.com
00082dd.com
00082ss.com

If the file contains anything other than plain domains (like comments or extra data), it may cause parsing issues.

🧩 Add Your Own Disposable Domains

Want to block additional disposable domains?
You can easily extend the list manually — no coding, no command required!

Step Action
🔹 1 Go to the following path:
storage/app/blacklist_file/
🔹 2 Create or edit this file:
disposable_domains.txt
🔹 3 Add your custom domains like:
abakiss.com
fakemail.org
trashbox.io
(one per line)

📌 Important Notes:

  • Each line must contain only the domain name – no extra symbols, no comments.
  • The package will automatically detect and use the domains from this file.
  • You do not need to run any Artisan command. 🧙‍♂️

⚙️ Ensure File Path Matches Configuration

Your file path must match the one defined in config/disposable-email.php:

'blacklist_file' => storage_path('app/blacklist_file'),

If the path or filename is different, the package will not load your custom list.

🧠 Caching Support (Optional)

This package supports optional caching to improve performance, especially when dealing with large domain lists.

🔧 How It Works

  • If enabled, the package will cache the compiled list of disposable domains for faster lookup.
  • This is useful in high-traffic applications where the same list is accessed frequently.

🛠 Enable Caching

To enable caching, update the config file config/disposable-email.php:

'cache_enabled' => true,
'cache_ttl' => 60, 

🧹 Clear Cached List

If you manually update the domain list and want to clear the cache, you can use:

php artisan cache:clear

统计信息

  • 总下载量: 61.53k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 186
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 185
  • Watchers: 2
  • Forks: 14
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-19