std.net.isemail
Validates an email address according to RFCs 5321, 5322 and others. Authors:Dominic Sayers
Boost Software License 1.0 Version:
3.0.13 - Version 3.0 of the original PHP implementation: http://www.dominicsayers.com/isemail Standards:
- RFC 5321
- RFC 5322
- http://www.dominicsayers.com/isemail
- http://tools.ietf.org/html/rfc5321
- http://tools.ietf.org/html/rfc5322
std/net/isemail.d
- Check that an email address conforms to RFCs 5321, 5322 and others.
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).
Note:
The DNS check is currently not implemented. Parameters:
an EmailStatus, indicating the status of the email address. - Enum for indicating if the isEmail function should perform a DNS check or not.
- Does not perform DNS checking
- Performs DNS checking
- This struct represents the status of an email address
- Indicates if the email address is valid or not.
- The local part of the email address, that is, the part before the @ sign.
- The domain part of the email address, that is, the part after the @ sign.
- The email status code
- Returns a describing string of the status code
- Returns a textual representation of the email status
- Returns a describing string of the given status code
- An email status code, indicating if an email address is valid or not.
If it is invalid it also indicates why.
- Address is valid
- Address is valid but a DNS check was not successful
- Address is valid for SMTP but has unusual elements
- Address is valid within the message but cannot be used unmodified for the envelope
- Address contains deprecated elements but may still be valid in restricted contexts
- The address is only valid according to the broad definition of RFC 5322. It is otherwise invalid
- All finer grained error checking is turned on. Address containing errors or warnings is considered invalid. A specific email status code will be returned indicating the error/warning of the address.
- Address is either considered valid or not, no finer grained error checking is performed. Returned email status code will be either Error or Valid.
- Address containing warnings is considered valid, that is, any status code below 16 is considered valid.
- Address is invalid for any purpose
- Address is valid
- Could not find an MX record for this domain but an A-record does exist
- Could not find an MX record or an A-record for this domain
- Address is valid but at a Top Level Domain
- Address is valid but the Top Level Domain begins with a number
- Address is valid but contains a quoted string
- Address is valid but at a literal address not a domain
- Address is valid but contains a :: that only elides one zero group
- Address contains comments
- Address contains Folding White Space
- The local part is in a deprecated form
- Address contains an obsolete form of Folding White Space
- A quoted string contains a deprecated character
- A quoted pair contains a deprecated character
- Address contains a comment in a position that is deprecated
- A comment contains a deprecated character
- Address contains a comment or Folding White Space around the @ sign
- Address is RFC 5322 compliant but contains domain characters that are not allowed by DNS
- Address is too long
- The local part of the address is too long
- The domain part is too long
- The domain part contains an element that is too long
- The domain literal is not a valid RFC 5321 address literal
- The domain literal is not a valid RFC 5321 address literal and it contains obsolete characters
- The IPv6 literal address contains the wrong number of groups
- The IPv6 literal address contains too many :: sequences
- The IPv6 address contains an illegal group of characters
- The IPv6 address has too many groups
- IPv6 address starts with a single colon
- IPv6 address ends with a single colon
- A domain literal contains a character that is not allowed
- Address has no local part
- Address has no domain part
- The address may not contain consecutive dots
- Address contains text after a comment or Folding White Space
- Address contains text after a quoted string
- Extra characters were found after the end of the domain literal
- The address contains a character that is not allowed in a quoted pair
- Address contains a character that is not allowed
- A quoted string contains a character that is not allowed
- A comment contains a character that is not allowed
- The address cannot end with a backslash
- Neither part of the address may begin with a dot
- Neither part of the address may end with a dot
- A domain or subdomain cannot begin with a hyphen
- A domain or subdomain cannot end with a hyphen
- Unclosed quoted string
- Unclosed comment
- Domain literal is missing its closing bracket
- Folding White Space contains consecutive CRLF sequences
- Folding White Space ends with a CRLF sequence
- Address contains a carriage return that is not followed by a line feed