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 на наличие записей MXEmailStatusCode 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 statusCodeEmailStatusCodeдля чтения
- Возвращает:
- Подробное описание заданного кода состояния
- 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