PHP code example of harungecit / php-email-validator
1. Go to this page and download the library: Download harungecit/php-email-validator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$validator->isSpoofed('[email protected]'); // true — "gmаil.com" with a Cyrillic "а"
$validator->isSpoofed("p\u{0430}[email protected]"); // true — mixed-script local part
$validator->isSpoofed('ivan@почта.рф'); // false — one script per part is legitimate
use HarunGecit\EmailValidator\Framework\Laravel\Rules\NotDisposableEmail;
use HarunGecit\EmailValidator\Framework\Laravel\Rules\NotRoleBasedEmail;
use HarunGecit\EmailValidator\Framework\Laravel\Rules\ValidEmail;
$request->validate([
'email' => ['new NotRoleBasedEmail()],
'other' => ['
use HarunGecit\EmailValidator\Framework\Symfony\Validator\NotDisposableEmail;
use HarunGecit\EmailValidator\Framework\Symfony\Validator\NotRoleBasedEmail;
use HarunGecit\EmailValidator\Framework\Symfony\Validator\ValidEmail;
use Symfony\Component\Validator\Constraints as Assert;
class SignupDto
{
#[Assert\NotBlank, Assert\Email, NotDisposableEmail]
public string $email;
#[ValidEmail(checkMx: false, message: 'Invalid email: {{ reason }}')]
public string $workEmail;
#[NotRoleBasedEmail(groups: ['registration'])]
public string $contactEmail;
}
$validator = service('emailValidator'); // shared; single_service('emailValidator') for a new instance
$validator->checkDisposable('[email protected]')->getMatchedDomain(); // 'mailinator.com'
namespace Config;
use HarunGecit\EmailValidator\Framework\CodeIgniter\Config\EmailValidator as BaseEmailValidator;
class EmailValidator extends BaseEmailValidator
{
public array $lists = [
'custom_blocklist' => ['competitor-temp.com'],
'synced_blocklist_path' => WRITEPATH . 'email-validator/synced.conf',
'block_subdomains' => true,
];
}
use HarunGecit\EmailValidator\Framework\CakePHP\EmailValidationProvider;
public function validationDefault(Validator $validator): Validator
{
// One call: registers the "emailValidator" provider and adds the rules
EmailValidationProvider::attach($validator, 'email', [
'notDisposable',
'notRoleBased' => 'Please use a personal email address.', // custom message
]);
return $validator;
}
use HarunGecit\EmailValidator\Framework\Yii2\NotDisposableEmailValidator;
use HarunGecit\EmailValidator\Framework\Yii2\NotRoleBasedEmailValidator;
use HarunGecit\EmailValidator\Framework\Yii2\VerifiedEmailValidator;
public function rules()
{
return [
['email', 'i::$app->emailValidator->checkDisposable('[email protected]')->getMatchedDomain(); // 'mailinator.com'
use HarunGecit\EmailValidator\Framework\Yii3\NotDisposableEmail;
use HarunGecit\EmailValidator\Framework\Yii3\VerifiedEmail;
use Yiisoft\Validator\Rule\{Email, Required};
final class SignupForm
{
#[Required, Email, NotDisposableEmail]
public string $email = '';
#[VerifiedEmail(skipOnEmpty: true, messages: ['disposable' => 'Please use a permanent email address.'])]
public string $backupEmail = '';
}
use HarunGecit\EmailValidator\Framework\Phalcon\EmailValidatorServiceProvider;
use HarunGecit\EmailValidator\Framework\Phalcon\Validator\NotDisposableEmail;
use HarunGecit\EmailValidator\Framework\Phalcon\Validator\VerifiedEmail;
use Phalcon\Filter\Validation;
use Phalcon\Filter\Validation\Validator\Email;
$di->register(new EmailValidatorServiceProvider([
'checks' => ['mx' => true],
'lists' => ['synced_blocklist_path' => BASE_PATH . '/storage/email-validator/synced.conf'],
])); // or no argument: reads the "emailValidator" section of the "config" service
$validation = new Validation();
$validation->add('email', new Email());
$validation->add('email', new NotDisposableEmail(['message' => 'Disposable addresses (:domain) are not allowed']));
$validation->add('email', new VerifiedEmail(['messages' => ['mx' => 'The domain of :field cannot receive email']]));
$messages = $validation->validate($_POST);