HumHub Documentation (unofficial)

EmailAddress extends AbstractValidator
in package

Table of Contents

Constants

DOT_ATOM  = 'emailAddressDotAtom'
INVALID  = 'emailAddressInvalid'
INVALID_FORMAT  = 'emailAddressInvalidFormat'
INVALID_HOSTNAME  = 'emailAddressInvalidHostname'
INVALID_LOCAL_PART  = 'emailAddressInvalidLocalPart'
INVALID_MX_RECORD  = 'emailAddressInvalidMxRecord'
INVALID_SEGMENT  = 'emailAddressInvalidSegment'
LENGTH_EXCEEDED  = 'emailAddressLengthExceeded'
QUOTED_STRING  = 'emailAddressQuotedString'

Properties

$messageTemplates  : array<string, string>
$messageVariables  : array<string, mixed>
$options  : array<string, mixed>
$abstractOptions  : AbstractOptions|array<string, mixed>
$defaultTranslator  : TranslatorInterface
Default translation object for all validate objects
$defaultTranslatorTextDomain  : string
Default text domain to be used with translator
$hostname  : string
$localPart  : string
$messageLength  : int
Limits the maximum returned length of an error message
$messageTemplates  : array<string, string>
$messageVariables  : array<string|int, mixed>
$mxRecord  : array<string|int, mixed>
Returns the found mx record information
$options  : array<string, mixed>
Internal options array
$value  : mixed
The value to be validated

Methods

__construct()  : mixed
Instantiates hostname validator for local use
__get()  : mixed
Magic function returns the value of the requested property, if and only if it is the value or a message variable.
__invoke()  : bool
Invoke as command
getAllow()  : int
Returns the allow option of the attached hostname validator
getDeepMxCheck()  : bool
Returns the set deepMxCheck option
getDefaultTranslator()  : TranslatorInterface|null
Get default translation object for all validate objects
getDefaultTranslatorTextDomain()  : string
Get default translation text domain for all validate objects
getDomainCheck()  : bool
Returns the set domainCheck option
getHostnameValidator()  : Hostname
Returns the set hostname validator
getMessageLength()  : int
Returns the maximum allowed message length
getMessages()  : array<string, string>
Returns array of validation failure messages
getMessageTemplates()  : array<string, string>
Returns the message templates from the validator
getMessageVariables()  : array<int, string>
Returns an array of the names of variables that are used in constructing validation failure messages
getMxCheck()  : bool
Returns the set validateMx option
getMXRecord()  : array<string|int, mixed>
Returns the found MX Record information after validation including weight for further processing
getOption()  : mixed
Returns an option
getOptions()  : array<string, mixed>
Returns all available options
getTranslator()  : TranslatorInterface|null
Return translation object
getTranslatorTextDomain()  : string
Return the translation text domain
hasDefaultTranslator()  : bool
Is there a default translation object set?
hasTranslator()  : bool
Does this validator have its own specific translator?
isMxSupported()  : bool
Whether MX checking via getmxrr is supported or not
isTranslatorEnabled()  : bool
Is translation enabled?
isValid()  : bool
Defined by Laminas\Validator\ValidatorInterface
isValueObscured()  : bool
Retrieve flag indicating whether or not value should be obfuscated in messages
setAllow()  : $this
Sets the allow option of the hostname validator to use
setDefaultTranslator()  : void
Set default translation object for all validate objects
setDefaultTranslatorTextDomain()  : void
Set default translation text domain for all validate objects
setHostnameValidator()  : $this
setMessage()  : AbstractValidator
Sets the validation failure message template for a particular key Adds the ability to set messages to the attached hostname validator
setMessageLength()  : void
Sets the maximum allowed message length
setMessages()  : $this
Sets validation failure message templates given as an array, where the array keys are the message keys, and the array values are the message template strings.
setOptions()  : $this
Sets one or multiple options
setTranslator()  : $this
Set translation object
setTranslatorEnabled()  : $this
Indicate whether or not translation should be enabled
setTranslatorTextDomain()  : $this
Set translation text domain
setValueObscured()  : $this
Set flag indicating whether or not value should be obfuscated in messages
useDeepMxCheck()  : $this
Use deep validation for MX records
useDomainCheck()  : $this
Sets if the domain should also be checked or only the local part of the email address
useMxCheck()  : $this
Set whether we check for a valid MX record via DNS
createMessage()  : null|string
Constructs and returns a validation failure message with the given message key and value.
error()  : void
getValue()  : mixed
Returns the validation value
idnToAscii()  : string
Safely convert UTF-8 encoded domain name to ASCII
idnToUtf8()  : string
Safely convert ASCII encoded domain name to UTF-8
isReserved()  : bool
Returns if the given host is reserved
setValue()  : void
Sets the value to be validated and clears the messages and errors arrays
splitEmailParts()  : bool
Splits the given value in hostname and local part of the email address
translateMessage()  : string
Translate a validation message
validateHostnamePart()  : bool|array<string|int, string>
Internal method to validate the hostname part of the email address
validateInternationalizedLocalPart()  : bool
validateLocalPart()  : bool
Internal method to validate the local part of the email address
validateMXRecords()  : bool|array<string|int, string>
Internal method to validate the servers MX records

Constants

INVALID_FORMAT

public mixed INVALID_FORMAT = 'emailAddressInvalidFormat'

INVALID_HOSTNAME

public mixed INVALID_HOSTNAME = 'emailAddressInvalidHostname'

INVALID_LOCAL_PART

public mixed INVALID_LOCAL_PART = 'emailAddressInvalidLocalPart'

INVALID_MX_RECORD

public mixed INVALID_MX_RECORD = 'emailAddressInvalidMxRecord'

INVALID_SEGMENT

public mixed INVALID_SEGMENT = 'emailAddressInvalidSegment'

LENGTH_EXCEEDED

public mixed LENGTH_EXCEEDED = 'emailAddressLengthExceeded'

QUOTED_STRING

public mixed QUOTED_STRING = 'emailAddressQuotedString'

Properties

$abstractOptions

protected AbstractOptions|array<string, mixed> $abstractOptions = [ 'messages' => [], // Array of validation failure messages 'messageTemplates' => [], // Array of validation failure message templates 'messageVariables' => [], // Array of additional variables available for validation failure messages 'translator' => null, // Translation object to used -> Translator\TranslatorInterface 'translatorTextDomain' => null, // Translation text domain 'translatorEnabled' => true, // Is translation enabled? 'valueObscured' => false, ]

$defaultTranslatorTextDomain

Default text domain to be used with translator

protected static string $defaultTranslatorTextDomain = 'default'

$messageLength

Limits the maximum returned length of an error message

protected static int $messageLength = -1

$messageTemplates

protected array<string, string> $messageTemplates = [self::INVALID => "Invalid type given. String expected", self::INVALID_FORMAT => "The input is not a valid email address. Use the basic format local-part@hostname", self::INVALID_HOSTNAME => "'%hostname%' is not a valid hostname for the email address", self::INVALID_MX_RECORD => "'%hostname%' does not appear to have any valid MX or A records for the email address", self::INVALID_SEGMENT => "'%hostname%' is not in a routable network segment. The email address should not be resolved from public network", self::DOT_ATOM => "'%localPart%' can not be matched against dot-atom format", self::QUOTED_STRING => "'%localPart%' can not be matched against quoted-string format", self::INVALID_LOCAL_PART => "'%localPart%' is not a valid local part for the email address", self::LENGTH_EXCEEDED => "The input exceeds the allowed length"]

$messageVariables

protected array<string|int, mixed> $messageVariables = ['hostname' => 'hostname', 'localPart' => 'localPart']

$mxRecord

Returns the found mx record information

protected array<string|int, mixed> $mxRecord = []

$options

Internal options array

protected array<string, mixed> $options = ['useMxCheck' => false, 'useDeepMxCheck' => false, 'useDomainCheck' => true, 'allow' => \Laminas\Validator\Hostname::ALLOW_DNS, 'strict' => true, 'hostnameValidator' => null]

Methods

__construct()

Instantiates hostname validator for local use

public __construct([array<string|int, mixed>|Traversable $options = [] ]) : mixed

The following additional option keys are supported: 'hostnameValidator' => A hostname validator, see Laminas\Validator\Hostname 'allow' => Options for the hostname validator, see Laminas\Validator\Hostname::ALLOW_* 'strict' => Whether to adhere to strictest requirements in the spec 'useMxCheck' => If MX check should be enabled, boolean 'useDeepMxCheck' => If a deep MX check should be done, boolean

Parameters
$options : array<string|int, mixed>|Traversable = []

OPTIONAL

__get()

Magic function returns the value of the requested property, if and only if it is the value or a message variable.

public __get(string $property) : mixed
Parameters
$property : string
Tags
throws
InvalidArgumentException

__invoke()

Invoke as command

public __invoke(mixed $value) : bool
Parameters
$value : mixed
Return values
bool

getAllow()

Returns the allow option of the attached hostname validator

public getAllow() : int
Return values
int

getDeepMxCheck()

Returns the set deepMxCheck option

public getDeepMxCheck() : bool
Return values
bool

getDefaultTranslatorTextDomain()

Get default translation text domain for all validate objects

public static getDefaultTranslatorTextDomain() : string
Return values
string

getDomainCheck()

Returns the set domainCheck option

public getDomainCheck() : bool
Return values
bool

getHostnameValidator()

Returns the set hostname validator

public getHostnameValidator() : Hostname

If was not previously set then lazy load a new one

Return values
Hostname

getMessageLength()

Returns the maximum allowed message length

public static getMessageLength() : int
Return values
int

getMessages()

Returns array of validation failure messages

public getMessages() : array<string, string>
Return values
array<string, string>

getMessageTemplates()

Returns the message templates from the validator

public getMessageTemplates() : array<string, string>
Return values
array<string, string>

getMessageVariables()

Returns an array of the names of variables that are used in constructing validation failure messages

public getMessageVariables() : array<int, string>
Return values
array<int, string>

getMxCheck()

Returns the set validateMx option

public getMxCheck() : bool
Return values
bool

getMXRecord()

Returns the found MX Record information after validation including weight for further processing

public getMXRecord() : array<string|int, mixed>
Return values
array<string|int, mixed>

getOption()

Returns an option

public getOption(string $option) : mixed
Parameters
$option : string

Option to be returned

Tags
throws
InvalidArgumentException
Return values
mixed

Returned option

getOptions()

Returns all available options

public getOptions() : array<string, mixed>
Return values
array<string, mixed>

Array with all available options

getTranslatorTextDomain()

Return the translation text domain

public getTranslatorTextDomain() : string
Return values
string

hasDefaultTranslator()

Is there a default translation object set?

public static hasDefaultTranslator() : bool
Return values
bool

hasTranslator()

Does this validator have its own specific translator?

public hasTranslator() : bool
Return values
bool

isMxSupported()

Whether MX checking via getmxrr is supported or not

public isMxSupported() : bool
Return values
bool

isTranslatorEnabled()

Is translation enabled?

public isTranslatorEnabled() : bool
Return values
bool

isValid()

Defined by Laminas\Validator\ValidatorInterface

public isValid(string $value) : bool

Returns true if and only if $value is a valid email address according to RFC2822

Parameters
$value : string
Tags
link

RFC2822

link

US-ASCII characters

Return values
bool

isValueObscured()

Retrieve flag indicating whether or not value should be obfuscated in messages

public isValueObscured() : bool
Return values
bool

setAllow()

Sets the allow option of the hostname validator to use

public setAllow(int $allow) : $this
Parameters
$allow : int
Return values
$this

Provides a fluent interface

setDefaultTranslatorTextDomain()

Set default translation text domain for all validate objects

public static setDefaultTranslatorTextDomain([string $textDomain = 'default' ]) : void
Parameters
$textDomain : string = 'default'

setHostnameValidator()

public setHostnameValidator([Hostname $hostnameValidator = null ]) : $this
Parameters
$hostnameValidator : Hostname = null

OPTIONAL

Return values
$this

Provides a fluent interface

setMessage()

Sets the validation failure message template for a particular key Adds the ability to set messages to the attached hostname validator

public setMessage(string $messageString[, string $messageKey = null ]) : AbstractValidator
Parameters
$messageString : string
$messageKey : string = null

OPTIONAL

Return values
AbstractValidator

Provides a fluent interface

setMessageLength()

Sets the maximum allowed message length

public static setMessageLength([int $length = -1 ]) : void
Parameters
$length : int = -1

setMessages()

Sets validation failure message templates given as an array, where the array keys are the message keys, and the array values are the message template strings.

public setMessages(array<string, string> $messages) : $this
Parameters
$messages : array<string, string>
Return values
$this

setOptions()

Sets one or multiple options

public setOptions([array<string, mixed>|Traversable<string, mixed> $options = [] ]) : $this
Parameters
$options : array<string, mixed>|Traversable<string, mixed> = []

Options to set

Tags
throws
InvalidArgumentException

If $options is not an array or Traversable.

Return values
$this

Provides fluid interface

setTranslatorEnabled()

Indicate whether or not translation should be enabled

public setTranslatorEnabled([bool $enabled = true ]) : $this
Parameters
$enabled : bool = true
Return values
$this

setTranslatorTextDomain()

Set translation text domain

public setTranslatorTextDomain([string $textDomain = 'default' ]) : $this
Parameters
$textDomain : string = 'default'
Return values
$this

setValueObscured()

Set flag indicating whether or not value should be obfuscated in messages

public setValueObscured(bool $flag) : $this
Parameters
$flag : bool
Return values
$this

useDeepMxCheck()

Use deep validation for MX records

public useDeepMxCheck(bool $deep) : $this
Parameters
$deep : bool

Set deep to true to perform a deep validation process for MX records

Return values
$this

Fluid Interface

useDomainCheck()

Sets if the domain should also be checked or only the local part of the email address

public useDomainCheck([bool $domain = true ]) : $this
Parameters
$domain : bool = true
Return values
$this

Fluid Interface

useMxCheck()

Set whether we check for a valid MX record via DNS

public useMxCheck(bool $mx) : $this

This only applies when DNS hostnames are validated

Parameters
$mx : bool

Set allowed to true to validate for MX records, and false to not validate them

Return values
$this

Fluid Interface

createMessage()

Constructs and returns a validation failure message with the given message key and value.

protected createMessage(string $messageKey, string|array<string|int, mixed>|object $value) : null|string

Returns null if and only if $messageKey does not correspond to an existing template.

If a translator is available and a translation exists for $messageKey, the translation will be used.

Parameters
$messageKey : string
$value : string|array<string|int, mixed>|object
Return values
null|string

error()

protected error(string|null $messageKey[, null|string|array<string|int, mixed>|object $value = null ]) : void
Parameters
$messageKey : string|null
$value : null|string|array<string|int, mixed>|object = null

OPTIONAL

getValue()

Returns the validation value

protected getValue() : mixed
Return values
mixed

Value to be validated

idnToAscii()

Safely convert UTF-8 encoded domain name to ASCII

protected idnToAscii(string $email) : string
Parameters
$email : string

the UTF-8 encoded email

Return values
string

idnToUtf8()

Safely convert ASCII encoded domain name to UTF-8

protected idnToUtf8(string $email) : string
Parameters
$email : string

the ASCII encoded email

Return values
string

isReserved()

Returns if the given host is reserved

protected isReserved(string $host) : bool

The following addresses are seen as reserved '0.0.0.0/8', '10.0.0.0/8', '127.0.0.0/8' '100.64.0.0/10' '172.16.0.0/12' '198.18.0.0/15' '169.254.0.0/16', '192.168.0.0/16' '192.0.2.0/24', '192.88.99.0/24', '198.51.100.0/24', '203.0.113.0/24' '224.0.0.0/4', '240.0.0.0/4'

Parameters
$host : string
Tags
see
http://en.wikipedia.org/wiki/Reserved_IP_addresses

As of RFC5753 (JAN 2010), the following blocks are no longer reserved:

  • 128.0.0.0/16
  • 191.255.0.0/16
  • 223.255.255.0/24
see
http://tools.ietf.org/html/rfc5735#page-6

As of RFC6598 (APR 2012), the following blocks are now reserved:

  • 100.64.0.0/10
see
http://tools.ietf.org/html/rfc6598#section-7
Return values
bool

Returns false when minimal one of the given addresses is not reserved

setValue()

Sets the value to be validated and clears the messages and errors arrays

protected setValue(mixed $value) : void
Parameters
$value : mixed

splitEmailParts()

Splits the given value in hostname and local part of the email address

protected splitEmailParts(string $value) : bool
Parameters
$value : string

Email address to be split

Return values
bool

Returns false when the email can not be split

translateMessage()

Translate a validation message

protected translateMessage(string $messageKey, string $message) : string
Parameters
$messageKey : string
$message : string
Return values
string

validateHostnamePart()

Internal method to validate the hostname part of the email address

protected validateHostnamePart() : bool|array<string|int, string>
Tags
psalm-return

bool|list

Return values
bool|array<string|int, string>

validateInternationalizedLocalPart()

protected validateInternationalizedLocalPart(string $localPart) : bool
Parameters
$localPart : string

Address local part to validate.

Return values
bool

validateLocalPart()

Internal method to validate the local part of the email address

protected validateLocalPart() : bool
Return values
bool

validateMXRecords()

Internal method to validate the servers MX records

protected validateMXRecords() : bool|array<string|int, string>
Tags
psalm-return

bool|list

Return values
bool|array<string|int, string>

        
On this page

Search results