Spec-Zone.ru › D

std.net.isemail

Проверяет адрес электронной почты в соответствии с RFC 5321, 5322 и другими.

Авторы:
Dominic Sayers <dominic@sayers.cc>, Jacob Carlborg
Лицензия:
Лицензия Boost Software License 1.0 Dominic Sayers любезно разрешил использовать лицензию Boost по электронной почте 22 февраля 2011 года.
Версия:
3.0.13 - Версия 3.0 оригинальной реализации на PHP: http://www.dominicsayers.com/isemail
Стандарты:
  • 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
EmailStatus isEmail(Char)(const(Char)[] email, CheckDns checkDNS = No.checkDns, EmailStatusCode errorLevel = EmailStatusCode.none)
Constraints: if (isSomeChar!Char);

Проверяет, соответствует ли адрес электронной почты RFC 5321, 5322 и другим.

Различает почтовый ящик, определенный RFC 5321, и адрес-спецификацию, определенную RFC 5322. В зависимости от контекста, любой из них может считаться допустимым адресом электронной почты.

Примечание
Проверка DNS в настоящее время не реализована.
Параметры:
const(Char)[] email Адрес электронной почты для проверки
CheckDns checkDNS Если Yes.checkDns, будет выполнена проверка DNS на наличие записей MX
EmailStatusCode errorLevel Определяет границу между допустимыми и недопустимыми адресами. Коды статуса выше этого значения будут возвращены как есть, коды статуса ниже будут возвращены как EmailStatusCode.valid. Таким образом, вызывающая программа может просто проверить на EmailStatusCode.valid, если ее интересует только то, является ли адрес допустимым или нет. Значение errorLevel определит, насколько «придирчивым» будет isEmail(). Если опущено или передано как EmailStatusCode.none, isEmail() не будет выполнять более тонкую проверку ошибок, и адрес считается допустимым или недопустимым. Код статуса электронной почты будет либо EmailStatusCode.valid, либо EmailStatusCode.error.
Возвращает:
Статус адреса электронной почты, указанный в EmailStatus.
alias CheckDns = std.typecons.Flag!"checkDns".Flag;

Флаг, указывающий, должна ли функция isEmail выполнять проверку DNS или нет.

Если установлено значение CheckDns.no, isEmail не выполняет проверку DNS.

В противном случае, если установлено значение CheckDns.yes, isEmail выполняет проверку DNS.

struct EmailStatus;

Представляет собой состояние адреса электронной почты

const pure nothrow @nogc @property @safe bool valid();
Возвращает:
Является ли адрес электронной почты допустимым или нет.
const pure nothrow @nogc @property @safe string localPart();
Возвращает:
Локальная часть адреса электронной почты, то есть часть перед знаком «@».
const pure nothrow @nogc @property @safe string domainPart();
Возвращает:
Доменная часть адреса электронной почты, то есть часть после знака «@».
const pure nothrow @nogc @property @safe EmailStatusCode statusCode();
Возвращает:
Код состояния электронной почты
const pure nothrow @nogc @property @safe string status();
Возвращает:
Описание кода состояния
const pure @safe string toString();
Возвращает:
Текстовое представление состояния электронной почты
pure nothrow @nogc @safe string statusCodeDescription(EmailStatusCode statusCode);
Параметры:
EmailStatusCode statusCode EmailStatusCode для чтения
Возвращает:
Подробное описание заданного кода состояния
enum EmailStatusCode: int;

Код состояния электронной почты, указывающий, является ли адрес электронной почты допустимым или нет. Если он недопустим, он также указывает причину.

validCategory

Адрес корректен

dnsWarning

Адрес корректен, но проверка DNS не удалась

rfc5321

Адрес корректен для SMTP, но содержит необычные элементы

cFoldingWhitespace

Адрес корректен в сообщении, но не может быть использован без изменений в заголовке

deprecated_

Адрес содержит устаревшие элементы, но может быть корректен в ограниченных контекстах

rfc5322

Адрес корректен только по общему определению RFC 5322. В противном случае некорректен

any

Включена проверка всех ошибок и предупреждений. Адрес, содержащий ошибки или предупреждения, считается некорректным. Будет возвращён конкретный код состояния электронной почты, указывающий на ошибку/предупреждение адреса.

none

Адрес считается либо корректным, либо нет, не выполняется более подробная проверка ошибок. Возвращаемый код состояния электронной почты будет либо Ошибка, либо Корректно.

warning

Адрес, содержащий предупреждения, считается корректным, то есть любой код состояния ниже 16 считается корректным.

error

Адрес некорректен ни для каких целей

valid

Адрес корректен

dnsWarningNoMXRecord

Не удалось найти MX-запись для этого домена, но запись A существует

dnsWarningNoRecord

Не удалось найти MX-запись или запись A для этого домена

rfc5321TopLevelDomain

Адрес корректен, но на уровне домена верхнего уровня

rfc5321TopLevelDomainNumeric

Адрес корректен, но домен верхнего уровня начинается с цифры

rfc5321QuotedString

Адрес корректен, но содержит строку в кавычках

rfc5321AddressLiteral

Адрес корректен, но является литеральным адресом, а не доменом

rfc5321IpV6Deprecated

Адрес корректен, но содержит ::, который заменяет только одну группу нулей

comment

Адрес содержит комментарии

foldingWhitespace

Адрес содержит отступы

deprecatedLocalPart

Локальная часть имеет устаревший формат

deprecatedFoldingWhitespace

Адрес содержит устаревший формат отступов

deprecatedQuotedText

В строке в кавычках содержится устаревший символ

deprecatedQuotedPair

В кавычной паре содержится устаревший символ

deprecatedComment

Адрес содержит комментарий в устаревшем месте

deprecatedCommentText

Комментарий содержит устаревший символ

deprecatedCommentFoldingWhitespaceNearAt

Адрес содержит комментарий или отступ вокруг символа @

rfc5322Domain

Адрес соответствует RFC 5322, но содержит символы домена, которые не разрешены DNS

rfc5322TooLong

Адрес слишком длинный

rfc5322LocalTooLong

Локальная часть адреса слишком длинная

rfc5322DomainTooLong

Часть домена слишком длинная

rfc5322LabelTooLong

Часть домена содержит слишком длинный элемент

rfc5322DomainLiteral

Литерал домена не является допустимым литеральным адресом RFC 5321

rfc5322DomainLiteralObsoleteText

Литерал домена не является допустимым литеральным адресом RFC 5321 и содержит устаревшие символы

rfc5322IpV6GroupCount

Литеральный адрес IPv6 содержит неправильное количество групп

rfc5322IpV6TooManyDoubleColons

Литеральный адрес IPv6 содержит слишком много последовательностей ::

rfc5322IpV6BadChar

Адрес IPv6 содержит недопустимую группу символов

rfc5322IpV6MaxGroups

У адреса IPv6 слишком много групп

rfc5322IpV6ColonStart

Адрес IPv6 начинается с одиночной точки с двоеточием

rfc5322IpV6ColonEnd

Адрес IPv6 заканчивается одиночной точкой с двоеточием

errorExpectingDomainText

В литерале домена содержится недопустимый символ

errorNoLocalPart

Адрес не имеет локальной части

errorNoDomain

Адрес не имеет части домена

errorConsecutiveDots

В адресе не могут быть последовательные точки

errorTextAfterCommentFoldingWhitespace

Адрес содержит текст после комментария или отступа

errorTextAfterQuotedString

Адрес содержит текст после строки в кавычках

errorTextAfterDomainLiteral

После окончания литерала домена обнаружены дополнительные символы

errorExpectingQuotedPair

Адрес содержит символ, который недопустим в кавычной паре

errorExpectingText

Адрес содержит недопустимый символ

errorExpectingQuotedText

В строке в кавычках содержится недопустимый символ

errorExpectingCommentText

В комментарии содержится недопустимый символ

errorBackslashEnd

Адрес не может заканчиваться обратной косой чертой

errorDotStart

Ни одна часть адреса не может начинаться с точки

errorDotEnd

Ни одна часть адреса не может заканчиваться точкой

errorDomainHyphenStart

Домен или поддомен не могут начинаться с дефиса

errorDomainHyphenEnd

Домен или поддомен не могут заканчиваться дефисом

errorUnclosedQuotedString

Незакрытая строка в кавычках

errorUnclosedComment

Незакрытый комментарий

errorUnclosedDomainLiteral

Литерал домена не имеет закрывающей скобки

errorFoldingWhitespaceCrflX2

Складывающееся пробельное пространство содержит последовательные последовательности CRLF

errorFoldingWhitespaceCrLfEnd

Складывающееся пробельное пространство заканчивается последовательностью CRLF

errorCrNoLf

Адрес содержит возврат каретки, за которым не следует перевод строки

© 1999–2021 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/std_net_isemail.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API