Documentation du code de SPIP et de ses plugins

API de vérification

email

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_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_QUOTEDPAIR

public mixed ISEMAIL_CONTEXT_QUOTEDPAIR = 6

ISEMAIL_CONTEXT_QUOTEDSTRING

public mixed ISEMAIL_CONTEXT_QUOTEDSTRING = 5

ISEMAIL_DEPREC_CFWS_NEAR_AT

public mixed ISEMAIL_DEPREC_CFWS_NEAR_AT = 49

ISEMAIL_DEPREC_COMMENT

public mixed ISEMAIL_DEPREC_COMMENT = 37

ISEMAIL_DEPREC_LOCALPART

public mixed ISEMAIL_DEPREC_LOCALPART = 33

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_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_DOMAINHYPHENEND

public mixed ISEMAIL_ERR_DOMAINHYPHENEND = 144

ISEMAIL_ERR_DOMAINHYPHENSTART

public mixed ISEMAIL_ERR_DOMAINHYPHENSTART = 143

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_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_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_TLDNUMERIC

public mixed ISEMAIL_RFC5321_TLDNUMERIC = 10

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_BACKSLASH

public mixed ISEMAIL_STRING_BACKSLASH = '\\'

ISEMAIL_STRING_CLOSEPARENTHESIS

public mixed ISEMAIL_STRING_CLOSEPARENTHESIS = ')'

ISEMAIL_STRING_CLOSESQBRACKET

public mixed ISEMAIL_STRING_CLOSESQBRACKET = ']'

ISEMAIL_STRING_DOUBLECOLON

public mixed ISEMAIL_STRING_DOUBLECOLON = '::'

ISEMAIL_STRING_DQUOTE

public mixed ISEMAIL_STRING_DQUOTE = '"'

ISEMAIL_STRING_HYPHEN

public mixed ISEMAIL_STRING_HYPHEN = '-'

ISEMAIL_STRING_IPV6TAG

public mixed ISEMAIL_STRING_IPV6TAG = 'IPv6:'

ISEMAIL_STRING_OPENPARENTHESIS

public mixed ISEMAIL_STRING_OPENPARENTHESIS = '('

ISEMAIL_STRING_OPENSQBRACKET

public mixed ISEMAIL_STRING_OPENSQBRACKET = '['

ISEMAIL_STRING_SPECIALS

public mixed ISEMAIL_STRING_SPECIALS = '()<>[]:;@\\,."'

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

Return values
bool|int

        
On this page

Search results