A PHP library to validate email addresses using the Twilio SendGrid Email Validation API.
- Twilio SendGrid Email Validation API Key
- PHP 7.4 or greater
- Composer
composer require rayhughes/sendgrid-validationEmailValidation() initialized with default thresholds.
use SendGridValidation\EmailValidation;
use SendGridValidation\Repository\SendGridApiRepository;
$validation = new EmailValidation(new SendGridApiRepository('api-key'));
$emailValid = $validation->validate('email@example.com'));
echo $emailValid->isValid; // true
echo $emailValid->isValidRisk; // true
echo $emailValid->isValidScore; // true
echo $emailValid->isDisposable; // false
echo $emailValid->hasSuggestion; //false
echo $emailValid->suggestion; // nullEmailValidation()->validate() returns an instance of EmailValidationDto()
$isValid- Calculatedtrueif validation result meets specified thresholds.$isValidRisk- Calculatedtruespecified risk criteria$isValidScore- Calculatedtrueif within minimum score threshold.$isDisposable- Calculatedtrueif an email is considered to be disposable.$hasSuggestion- Calculatedtrueif a suggestion is available.$suggestion- Calculated email suggestion if available.
class EmailValidationDto
{
public bool $isValid = false;
public bool $isValidRisk = false;
public bool $isValidScore = false;
public bool $isDisposable = false;
public bool $hasSuggestion = false;
public ?string $suggestion = null;
}EmailValidation() can be initialized with optional parameters to validate against developer specified thresholds.
$allowRisky- Whentrue, considers risky emailsvalidif other conditions are met.$allowDisposable- Whentrue, considers disposable emailsvalidif other conditions are met.$checkValidScore- Whentrue, checks SendGridvalidemails against the minimum score threshold.$minSCore- Default0.30. considers emailsinvalidif the minimum score threshold is not met.
use SendGridValidation\EmailValidation;
use SendGridValidation\Repository\SendGridApiRepository;
$validation = new EmailValidation(
new SendGridApiRepository($apiKey),
true, // bool $allowRisky = true,
true, // bool $allowDisposable = true,
true, // bool $checkValidScore = false,
EmailValidation::MIN_SCORE // float $minScore = self::MIN_SCORE (0.30)
);
$emailValid = $validation->validate($email);