{"id":19756828,"url":"https://github.com/imiphp/imi-email-blacklist","last_synced_at":"2025-06-14T02:03:52.724Z","repository":{"id":189688402,"uuid":"681065300","full_name":"imiphp/imi-email-blacklist","owner":"imiphp","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-19T02:45:03.000Z","size":27,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-04T19:16:22.827Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imiphp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-08-21T07:27:20.000Z","updated_at":"2024-12-16T03:18:58.000Z","dependencies_parsed_at":"2023-12-20T13:25:27.596Z","dependency_job_id":"d84e369a-aa89-49b8-b5e3-8d90d23105a2","html_url":"https://github.com/imiphp/imi-email-blacklist","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"51d456f646103d4af970759aeeb026cfa9b08020"},"previous_names":["imiphp/imi-email-blacklist"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/imiphp/imi-email-blacklist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-email-blacklist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-email-blacklist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-email-blacklist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-email-blacklist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imiphp","download_url":"https://codeload.github.com/imiphp/imi-email-blacklist/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-email-blacklist/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259747195,"owners_count":22905308,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T03:17:06.339Z","updated_at":"2025-06-14T02:03:52.672Z","avatar_url":"https://github.com/imiphp.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# imi-email-blacklist\n\n[![Latest Version](https://img.shields.io/packagist/v/imiphp/imi-email-blacklist.svg)](https://packagist.org/packages/imiphp/imi-email-blacklist)\n[![Php Version](https://img.shields.io/badge/php-%3E=7.4-brightgreen.svg)](https://secure.php.net/)\n[![Swoole Version](https://img.shields.io/badge/swoole-%3E=4.8.0-brightgreen.svg)](https://github.com/swoole/swoole-src)\n[![imi License](https://img.shields.io/badge/license-MulanPSL%202.0-brightgreen.svg)](https://github.com/imiphp/imi-email-blacklist/blob/master/LICENSE)\n\n## 介绍\n\nimi 框架邮箱域名黑名单组件，支持自动更新临时邮箱域名列表。\n\n## 安装\n\n`composer require imiphp/imi-email-blacklist:~2.1.0`\n\n## 使用说明\n\n### 数据更新\n\n**配置：**\n\n`@app.beans`：\n\n```php\n[\n    \\Imi\\Email\\BlackList\\EmailBlackListHandler::class =\u003e [\n        'handler' =\u003e \\Imi\\Email\\BlackList\\Handler\\RedisHandler::class, // 数据处理器，目前仅支持 Redis，你也可以实现 \\Imi\\Email\\BlackList\\IHandler 接口自定义处理器\n    ],\n    \\Imi\\Email\\BlackList\\EmailBlackListCrawler::class =\u003e [\n        'enable' =\u003e true, // 是否启用\n        // 采集器列表\n        // 你也可以实现 \\Imi\\Email\\BlackList\\Contract\\IEmailBlackListCrawler 接口自定义采集器\n        'crawlers' =\u003e [\n            \\Imi\\Email\\BlackList\\IvoloDisposableEmailDomainsCrawler::class, // 数据来源：https://github.com/ivolo/disposable-email-domains/raw/master/index.json\n        ],\n    ],\n    // handler 配置\n    \\Imi\\Email\\BlackList\\Handler\\RedisHandler::class =\u003e [\n        'key' =\u003e 'imi:email:blacklist', // 存储数据的键名\n        'poolName' =\u003e null, // 连接池\n    ],\n]\n```\n\n\u003e 上面展示的是默认配置，默认不配置也可以使用\n\n**定时自动采集：**\n\n由于列表频繁更新可能性不大，固定 1 小时采集一次。你必须启用定时任务进程。\n\n**手动更新采集：**\n\n运行命令：`vendor/bin/imi-swoole emailBlackList/crawl`\n\n\u003e `imi-swoole` 也可以替换为其它容器的启动文件\n\n### 自定义管理域名\n\n```php\n$handler = \\Imi\\Email\\BlackList\\Util\\EmailBlackListUtil::getHandler();\n$handler-\u003eadd(['example.com']); // 批量增加\n$handler-\u003eremove(['example.com']); // 批量删除\n$handler-\u003eclear(); // 清空\n$handler-\u003ehas('example.com'); // 是否存在\n$handler-\u003ecount(); // 统计数量\n$handler-\u003elist(); // 获取列表\n$handler-\u003elist('.com'); // 关键词搜索\n// 分页\n// 注意：RedisHandler 返回数据数量可能不一定等于 $count\n$page = 1;\n$count = 10;\n$handler-\u003elist('', $page, $count);\n```\n\n### 验证器\n\n注解：`Imi\\Email\\BlackList\\Validate\\Annotation\\EmailBlackList`\n\n```php\n\u003c?php\n\ndeclare(strict_types=1);\n\nnamespace app\\Module\\Service;\n\nuse Imi\\Email\\BlackList\\Validate\\Annotation\\EmailBlackList;\nuse Imi\\Validate\\Annotation\\AutoValidation;\n\nclass TestService\n{\n    /**\n     * @AutoValidation\n     *\n     * @EmailBlackList(name=\"email\")\n     */\n    public function testEmail(string $email): void\n    {\n    }\n}\n```\n\n### 手动验证\n\n```php\n// 不在黑名单中返回 true，否则返回 false\n\\Imi\\Email\\BlackList\\Util\\EmailBlackListUtil::validateEmail('a@example.com');\n```\n\n## 免费技术支持\n\n技术支持详见：\u003chttps://doc.imiphp.com/v2.1/base/support.html\u003e\n\n## 运行环境\n\n* [PHP](https://php.net/) \u003e= 7.4\n* [Composer](https://getcomposer.org/) \u003e= 2.0\n* [Swoole](https://www.swoole.com/) \u003e= 4.8.0\n* [imi](https://www.imiphp.com/) \u003e= 2.1\n\n## 版权信息\n\n`imi-email-blacklist` 遵循 MulanPSL-2.0 开源协议发布，并提供免费使用。\n\n## 捐赠\n\n\u003cimg src=\"https://cdn.jsdelivr.net/gh/imiphp/imi@2.1/res/pay.png\"/\u003e\n\n开源不求盈利，多少都是心意，生活不易，随缘随缘……\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimiphp%2Fimi-email-blacklist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimiphp%2Fimi-email-blacklist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimiphp%2Fimi-email-blacklist/lists"}