andmemasin / yii2-emails-validator
A Yii2 module to do on-screen bulk validation of e-mails
Package info
github.com/TonisOrmisson/yii2-emails-validator
Type:yii2-extension
pkg:composer/andmemasin/yii2-emails-validator
Requires
- php: >=8.3.0
- ext-intl: *
- egulias/email-validator: ^3|^4
- yiisoft/yii2: ~2.0.5
Requires (Dev)
- andmemasin/yii2-myabstract: ^10.0
- codeception/codeception: ^5.0
- codeception/module-asserts: ^3.0.0
- codeception/module-db: ^3.0
- codeception/module-filesystem: ^3.0.0
- codeception/module-yii2: ^1.1.7
- illuminate/container: ^11.0|^12.0
- illuminate/http: ^11.0|^12.0
- illuminate/routing: ^11.0|^12.0
- illuminate/support: ^11.0|^12.0
- illuminate/view: ^11.0|^12.0
- infection/codeception-adapter: ^0.4.7
- infection/infection: ^0.34
- phpstan/phpstan: ^1.8
Suggests
- illuminate/container: Required only when using the optional Laravel adapter.
- illuminate/routing: Required only when using the optional Laravel adapter.
README
This package provides a stateless bulk e-mail validation module. It uses the existing Egulias RFC, RFC-warning, DNS, and spoof checks and does not write email addresses, validation history, or any other data to a database.
Yii2
Register the module as emailsvalidator and configure its existing
accessPermissionName, maxInputKB (128 by default), and
displayFlashMessages settings. The legacy /emailsvalidator page, public
EmailAddress and EmailsValidationForm models, console command, defaults,
and direct POST rendering remain available. GET renders the accessible native
<emails-validator> component; POST remains the server-rendered compatibility
path.
The package Composer bootstrap automatically registers one protected POST endpoint:
POST /emailsvalidator/api/v1/email-validations
Hosts that load the source directly, such as the dev app, must instead merge
andmemasin\\emailsvalidator\\Module::apiRouteRules() into their application
URL rules. This registers the same endpoint; do not register an additional
unprefixed Yii route.
The endpoint accepts textInput, checkDNS, checkSpoof, and
displayOnlyProblems, and returns the documented 200 result or 422
field-error response. The OpenAPI 3.1 document is at
resources/openapi/email-validation-v1.json.
Optional Laravel adapter
Laravel is not a runtime dependency. Install the optional Illuminate packages
when using the adapter, register
andmemasin\\emailsvalidator\\laravel\\EmailValidationServiceProvider, and
provide explicit configuration:
'emailsvalidator' => [ 'middleware' => ['auth'], 'csrf_middleware' => ['web'], 'max_input_kb' => 128, ],
Both middleware lists must be non-empty. max_input_kb must be a positive
integer; 128 is used only when the setting is absent. Register or load the
package route file and render the Blade view with non-empty apiBase,
csrfToken, and assetBase values. The host must serve the build-free files
in resources/ui (the package has no npm or frontend build step).
The Laravel adapter keeps its existing protected POST /api/v1/email-validations
route. The module is stateless and has no one-writer rule: not applicable:
this module writes nothing.