digitemp-rrdgraph/lib/Mail/Address.php

70 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace Orrisroot\Mail;
class Address
{
public const EMAIL_REGEX = '[a-zA-Z0-9]+(?:[_\\.\\-][a-zA-Z0-9]+)*@(?:[a-zA-Z0-9]+(?:[\\.\\-][a-zA-Z0-9]+)*)+\\.[a-zA-Z]{2,}';
/**
* @var string name
*/
private string $name;
/**
* @var string email address
*/
private string $email;
/**
* constructor.
*
* @param string $name name
* @param string $email email address
*
* @throws Exception
*/
public function __construct(string $name, string $email)
{
$this->name = $name;
if (!$this->validateEmail($email)) {
throw new \Exception('Invalid email address found: '.$email);
}
$this->email = $email;
}
/**
* get name.
*
* @return string name
*/
public function getName(): string
{
return $this->name;
}
/**
* get email.
*
* @return string email
*/
public function getEmail(): string
{
return $this->email;
}
/**
* check wheter string is email.
*
* @param string $text email
*
* @return bool false if not email string
*/
public function validateEmail(string $email): bool
{
return false !== preg_match('/^'.self::EMAIL_REGEX.'$/', $email);
}
}