Table of Contents
Constants
- ISEMAIL_CFWS = 31
- ISEMAIL_CFWS_COMMENT = 17
- ISEMAIL_CFWS_FWS = 18
- ISEMAIL_COMPONENT_DOMAIN = 1
- ISEMAIL_COMPONENT_LITERAL = 2
- ISEMAIL_COMPONENT_LOCALPART = 0
- ISEMAIL_CONTEXT_COMMENT = 3
- ISEMAIL_CONTEXT_FWS = 4
- ISEMAIL_CONTEXT_QUOTEDPAIR = 6
- ISEMAIL_CONTEXT_QUOTEDSTRING = 5
- ISEMAIL_DEPREC = 63
- ISEMAIL_DEPREC_CFWS_NEAR_AT = 49
- ISEMAIL_DEPREC_COMMENT = 37
- ISEMAIL_DEPREC_CTEXT = 38
- ISEMAIL_DEPREC_FWS = 34
- ISEMAIL_DEPREC_LOCALPART = 33
- ISEMAIL_DEPREC_QP = 36
- ISEMAIL_DEPREC_QTEXT = 35
- ISEMAIL_DNSWARN = 7
- ISEMAIL_DNSWARN_NO_MX_RECORD = 5
- ISEMAIL_DNSWARN_NO_RECORD = 6
- ISEMAIL_ERR = 255
- ISEMAIL_ERR_ATEXT_AFTER_CFWS = 133
- ISEMAIL_ERR_ATEXT_AFTER_DOMLIT = 135
- ISEMAIL_ERR_ATEXT_AFTER_QS = 134
- ISEMAIL_ERR_BACKSLASHEND = 140
- ISEMAIL_ERR_CONSECUTIVEDOTS = 132
- ISEMAIL_ERR_CR_NO_LF = 150
- ISEMAIL_ERR_DOMAINHYPHENEND = 144
- ISEMAIL_ERR_DOMAINHYPHENSTART = 143
- ISEMAIL_ERR_DOT_END = 142
- ISEMAIL_ERR_DOT_START = 141
- ISEMAIL_ERR_EXPECTING_ATEXT = 137
- ISEMAIL_ERR_EXPECTING_CTEXT = 139
- ISEMAIL_ERR_EXPECTING_DTEXT = 129
- ISEMAIL_ERR_EXPECTING_QPAIR = 136
- ISEMAIL_ERR_EXPECTING_QTEXT = 138
- ISEMAIL_ERR_FWS_CRLF_END = 149
- ISEMAIL_ERR_FWS_CRLF_X2 = 148
- ISEMAIL_ERR_NODOMAIN = 131
- ISEMAIL_ERR_NOLOCALPART = 130
- ISEMAIL_ERR_UNCLOSEDCOMMENT = 146
- ISEMAIL_ERR_UNCLOSEDDOMLIT = 147
- ISEMAIL_ERR_UNCLOSEDQUOTEDSTR = 145
- ISEMAIL_RFC5321 = 15
- ISEMAIL_RFC5321_ADDRESSLITERAL = 12
- ISEMAIL_RFC5321_IPV6DEPRECATED = 13
- ISEMAIL_RFC5321_QUOTEDSTRING = 11
- ISEMAIL_RFC5321_TLD = 9
- ISEMAIL_RFC5321_TLDNUMERIC = 10
- ISEMAIL_RFC5322 = 127
- ISEMAIL_RFC5322_DOMAIN = 65
- ISEMAIL_RFC5322_DOMAIN_TOOLONG = 68
- ISEMAIL_RFC5322_DOMAINLITERAL = 70
- ISEMAIL_RFC5322_DOMLIT_OBSDTEXT = 71
- ISEMAIL_RFC5322_IPV6_2X2XCOLON = 73
- ISEMAIL_RFC5322_IPV6_BADCHAR = 74
- ISEMAIL_RFC5322_IPV6_COLONEND = 77
- ISEMAIL_RFC5322_IPV6_COLONSTRT = 76
- ISEMAIL_RFC5322_IPV6_GRPCOUNT = 72
- ISEMAIL_RFC5322_IPV6_MAXGRPS = 75
- ISEMAIL_RFC5322_LABEL_TOOLONG = 69
- ISEMAIL_RFC5322_LOCAL_TOOLONG = 67
- ISEMAIL_RFC5322_TOOLONG = 66
- ISEMAIL_STRING_AT = '@'
- ISEMAIL_STRING_BACKSLASH = '\\'
- ISEMAIL_STRING_CLOSEPARENTHESIS = ')'
- ISEMAIL_STRING_CLOSESQBRACKET = ']'
- ISEMAIL_STRING_COLON = ':'
- ISEMAIL_STRING_CR = "\r"
- ISEMAIL_STRING_DOT = '.'
- ISEMAIL_STRING_DOUBLECOLON = '::'
- ISEMAIL_STRING_DQUOTE = '"'
- ISEMAIL_STRING_HTAB = "\t"
- ISEMAIL_STRING_HYPHEN = '-'
- ISEMAIL_STRING_IPV6TAG = 'IPv6:'
- ISEMAIL_STRING_LF = "\n"
- ISEMAIL_STRING_OPENPARENTHESIS = '('
- ISEMAIL_STRING_OPENSQBRACKET = '['
- ISEMAIL_STRING_SP = ' '
- ISEMAIL_STRING_SPECIALS = '()<>[]:;@\,."'
- ISEMAIL_THRESHOLD = 16
- ISEMAIL_VALID = 0
- ISEMAIL_VALID_CATEGORY = 1
Functions
- is_email() : bool|int
- Check that an email address conforms to RFCs 5321, 5322 and others
Constants
ISEMAIL_CFWS
public
mixed
ISEMAIL_CFWS
= 31
ISEMAIL_CFWS_COMMENT
public
mixed
ISEMAIL_CFWS_COMMENT
= 17
ISEMAIL_CFWS_FWS
public
mixed
ISEMAIL_CFWS_FWS
= 18
ISEMAIL_COMPONENT_DOMAIN
public
mixed
ISEMAIL_COMPONENT_DOMAIN
= 1
ISEMAIL_COMPONENT_LITERAL
public
mixed
ISEMAIL_COMPONENT_LITERAL
= 2
ISEMAIL_COMPONENT_LOCALPART
public
mixed
ISEMAIL_COMPONENT_LOCALPART
= 0
ISEMAIL_CONTEXT_COMMENT
public
mixed
ISEMAIL_CONTEXT_COMMENT
= 3
ISEMAIL_CONTEXT_FWS
public
mixed
ISEMAIL_CONTEXT_FWS
= 4
ISEMAIL_CONTEXT_QUOTEDPAIR
public
mixed
ISEMAIL_CONTEXT_QUOTEDPAIR
= 6
ISEMAIL_CONTEXT_QUOTEDSTRING
public
mixed
ISEMAIL_CONTEXT_QUOTEDSTRING
= 5
ISEMAIL_DEPREC
public
mixed
ISEMAIL_DEPREC
= 63
ISEMAIL_DEPREC_CFWS_NEAR_AT
public
mixed
ISEMAIL_DEPREC_CFWS_NEAR_AT
= 49
ISEMAIL_DEPREC_COMMENT
public
mixed
ISEMAIL_DEPREC_COMMENT
= 37
ISEMAIL_DEPREC_CTEXT
public
mixed
ISEMAIL_DEPREC_CTEXT
= 38
ISEMAIL_DEPREC_FWS
public
mixed
ISEMAIL_DEPREC_FWS
= 34
ISEMAIL_DEPREC_LOCALPART
public
mixed
ISEMAIL_DEPREC_LOCALPART
= 33
ISEMAIL_DEPREC_QP
public
mixed
ISEMAIL_DEPREC_QP
= 36
ISEMAIL_DEPREC_QTEXT
public
mixed
ISEMAIL_DEPREC_QTEXT
= 35
ISEMAIL_DNSWARN
public
mixed
ISEMAIL_DNSWARN
= 7
ISEMAIL_DNSWARN_NO_MX_RECORD
public
mixed
ISEMAIL_DNSWARN_NO_MX_RECORD
= 5
ISEMAIL_DNSWARN_NO_RECORD
public
mixed
ISEMAIL_DNSWARN_NO_RECORD
= 6
ISEMAIL_ERR
public
mixed
ISEMAIL_ERR
= 255
ISEMAIL_ERR_ATEXT_AFTER_CFWS
public
mixed
ISEMAIL_ERR_ATEXT_AFTER_CFWS
= 133
ISEMAIL_ERR_ATEXT_AFTER_DOMLIT
public
mixed
ISEMAIL_ERR_ATEXT_AFTER_DOMLIT
= 135
ISEMAIL_ERR_ATEXT_AFTER_QS
public
mixed
ISEMAIL_ERR_ATEXT_AFTER_QS
= 134
ISEMAIL_ERR_BACKSLASHEND
public
mixed
ISEMAIL_ERR_BACKSLASHEND
= 140
ISEMAIL_ERR_CONSECUTIVEDOTS
public
mixed
ISEMAIL_ERR_CONSECUTIVEDOTS
= 132
ISEMAIL_ERR_CR_NO_LF
public
mixed
ISEMAIL_ERR_CR_NO_LF
= 150
ISEMAIL_ERR_DOMAINHYPHENEND
public
mixed
ISEMAIL_ERR_DOMAINHYPHENEND
= 144
ISEMAIL_ERR_DOMAINHYPHENSTART
public
mixed
ISEMAIL_ERR_DOMAINHYPHENSTART
= 143
ISEMAIL_ERR_DOT_END
public
mixed
ISEMAIL_ERR_DOT_END
= 142
ISEMAIL_ERR_DOT_START
public
mixed
ISEMAIL_ERR_DOT_START
= 141
ISEMAIL_ERR_EXPECTING_ATEXT
public
mixed
ISEMAIL_ERR_EXPECTING_ATEXT
= 137
ISEMAIL_ERR_EXPECTING_CTEXT
public
mixed
ISEMAIL_ERR_EXPECTING_CTEXT
= 139
ISEMAIL_ERR_EXPECTING_DTEXT
public
mixed
ISEMAIL_ERR_EXPECTING_DTEXT
= 129
ISEMAIL_ERR_EXPECTING_QPAIR
public
mixed
ISEMAIL_ERR_EXPECTING_QPAIR
= 136
ISEMAIL_ERR_EXPECTING_QTEXT
public
mixed
ISEMAIL_ERR_EXPECTING_QTEXT
= 138
ISEMAIL_ERR_FWS_CRLF_END
public
mixed
ISEMAIL_ERR_FWS_CRLF_END
= 149
ISEMAIL_ERR_FWS_CRLF_X2
public
mixed
ISEMAIL_ERR_FWS_CRLF_X2
= 148
ISEMAIL_ERR_NODOMAIN
public
mixed
ISEMAIL_ERR_NODOMAIN
= 131
ISEMAIL_ERR_NOLOCALPART
public
mixed
ISEMAIL_ERR_NOLOCALPART
= 130
ISEMAIL_ERR_UNCLOSEDCOMMENT
public
mixed
ISEMAIL_ERR_UNCLOSEDCOMMENT
= 146
ISEMAIL_ERR_UNCLOSEDDOMLIT
public
mixed
ISEMAIL_ERR_UNCLOSEDDOMLIT
= 147
ISEMAIL_ERR_UNCLOSEDQUOTEDSTR
public
mixed
ISEMAIL_ERR_UNCLOSEDQUOTEDSTR
= 145
ISEMAIL_RFC5321
public
mixed
ISEMAIL_RFC5321
= 15
ISEMAIL_RFC5321_ADDRESSLITERAL
public
mixed
ISEMAIL_RFC5321_ADDRESSLITERAL
= 12
ISEMAIL_RFC5321_IPV6DEPRECATED
public
mixed
ISEMAIL_RFC5321_IPV6DEPRECATED
= 13
ISEMAIL_RFC5321_QUOTEDSTRING
public
mixed
ISEMAIL_RFC5321_QUOTEDSTRING
= 11
ISEMAIL_RFC5321_TLD
public
mixed
ISEMAIL_RFC5321_TLD
= 9
ISEMAIL_RFC5321_TLDNUMERIC
public
mixed
ISEMAIL_RFC5321_TLDNUMERIC
= 10
ISEMAIL_RFC5322
public
mixed
ISEMAIL_RFC5322
= 127
ISEMAIL_RFC5322_DOMAIN
public
mixed
ISEMAIL_RFC5322_DOMAIN
= 65
ISEMAIL_RFC5322_DOMAIN_TOOLONG
public
mixed
ISEMAIL_RFC5322_DOMAIN_TOOLONG
= 68
ISEMAIL_RFC5322_DOMAINLITERAL
public
mixed
ISEMAIL_RFC5322_DOMAINLITERAL
= 70
ISEMAIL_RFC5322_DOMLIT_OBSDTEXT
public
mixed
ISEMAIL_RFC5322_DOMLIT_OBSDTEXT
= 71
ISEMAIL_RFC5322_IPV6_2X2XCOLON
public
mixed
ISEMAIL_RFC5322_IPV6_2X2XCOLON
= 73
ISEMAIL_RFC5322_IPV6_BADCHAR
public
mixed
ISEMAIL_RFC5322_IPV6_BADCHAR
= 74
ISEMAIL_RFC5322_IPV6_COLONEND
public
mixed
ISEMAIL_RFC5322_IPV6_COLONEND
= 77
ISEMAIL_RFC5322_IPV6_COLONSTRT
public
mixed
ISEMAIL_RFC5322_IPV6_COLONSTRT
= 76
ISEMAIL_RFC5322_IPV6_GRPCOUNT
public
mixed
ISEMAIL_RFC5322_IPV6_GRPCOUNT
= 72
ISEMAIL_RFC5322_IPV6_MAXGRPS
public
mixed
ISEMAIL_RFC5322_IPV6_MAXGRPS
= 75
ISEMAIL_RFC5322_LABEL_TOOLONG
public
mixed
ISEMAIL_RFC5322_LABEL_TOOLONG
= 69
ISEMAIL_RFC5322_LOCAL_TOOLONG
public
mixed
ISEMAIL_RFC5322_LOCAL_TOOLONG
= 67
ISEMAIL_RFC5322_TOOLONG
public
mixed
ISEMAIL_RFC5322_TOOLONG
= 66
ISEMAIL_STRING_AT
public
mixed
ISEMAIL_STRING_AT
= '@'
ISEMAIL_STRING_BACKSLASH
public
mixed
ISEMAIL_STRING_BACKSLASH
= '\\'
ISEMAIL_STRING_CLOSEPARENTHESIS
public
mixed
ISEMAIL_STRING_CLOSEPARENTHESIS
= ')'
ISEMAIL_STRING_CLOSESQBRACKET
public
mixed
ISEMAIL_STRING_CLOSESQBRACKET
= ']'
ISEMAIL_STRING_COLON
public
mixed
ISEMAIL_STRING_COLON
= ':'
ISEMAIL_STRING_CR
public
mixed
ISEMAIL_STRING_CR
= "\r"
ISEMAIL_STRING_DOT
public
mixed
ISEMAIL_STRING_DOT
= '.'
ISEMAIL_STRING_DOUBLECOLON
public
mixed
ISEMAIL_STRING_DOUBLECOLON
= '::'
ISEMAIL_STRING_DQUOTE
public
mixed
ISEMAIL_STRING_DQUOTE
= '"'
ISEMAIL_STRING_HTAB
public
mixed
ISEMAIL_STRING_HTAB
= "\t"
ISEMAIL_STRING_HYPHEN
public
mixed
ISEMAIL_STRING_HYPHEN
= '-'
ISEMAIL_STRING_IPV6TAG
public
mixed
ISEMAIL_STRING_IPV6TAG
= 'IPv6:'
ISEMAIL_STRING_LF
public
mixed
ISEMAIL_STRING_LF
= "\n"
ISEMAIL_STRING_OPENPARENTHESIS
public
mixed
ISEMAIL_STRING_OPENPARENTHESIS
= '('
ISEMAIL_STRING_OPENSQBRACKET
public
mixed
ISEMAIL_STRING_OPENSQBRACKET
= '['
ISEMAIL_STRING_SP
public
mixed
ISEMAIL_STRING_SP
= ' '
ISEMAIL_STRING_SPECIALS
public
mixed
ISEMAIL_STRING_SPECIALS
= '()<>[]:;@\,."'
ISEMAIL_THRESHOLD
public
mixed
ISEMAIL_THRESHOLD
= 16
ISEMAIL_VALID
public
mixed
ISEMAIL_VALID
= 0
ISEMAIL_VALID_CATEGORY
public
mixed
ISEMAIL_VALID_CATEGORY
= 1
Functions
is_email()
Check that an email address conforms to RFCs 5321, 5322 and others
is_email(string $email[, bool $checkDNS = false ][, mixed $errorlevel = false ][, array<string|int, mixed> &$parsedata = [] ]) : bool|int
As of Version 3.0, we are now distinguishing clearly between a Mailbox as defined by RFC 5321 and an addr-spec as defined by RFC 5322. Depending on the context, either can be regarded as a valid email address. The RFC 5321 Mailbox specification is more restrictive (comments, white space and obsolete forms are not allowed)
Parameters
- $email : string
-
The email address to check
- $checkDNS : bool = false
-
If true then a DNS check for MX records will be made
- $errorlevel : mixed = false
-
Determines the boundary between valid and invalid addresses. Status codes above this number will be returned as-is, status codes below will be returned as ISEMAIL_VALID. Thus the calling program can simply look for ISEMAIL_VALID if it is only interested in whether an address is valid or not. The errorlevel will determine how "picky" is_email() is about the address.
If omitted or passed as false then is_email() will return true or false rather than an integer error or warning.
NB Note the difference between $errorlevel = false and $errorlevel = 0
- $parsedata : array<string|int, mixed> = []
-
If passed, returns the parsed address components