Учитывая адрес электронной почты в формате
John Doe <john@example.com>
Интересно, где этот формат явно определен и как все это называется. Кажется, это не указано в rfc5322 (по крайней мере, я не нашел). Итак, учитывая адрес, указанный выше, как бы вы назвали следующие переменные-члены, если бы вам пришлось определить для них класс?
John Doe
(имя)john@example.com>
(адрес)John Doe <john@example.com>
-> как вы все это называете?
2 ответа
Джон Доу john@example.com -> как вы все это называете?
Он называется почтовым ящиком, как указано в RFC 5322 на стр. 45:
3.4. Указание адреса
Адреса встречаются в нескольких полях заголовка сообщения, чтобы указать отправителей и получателей сообщений. Адрес может быть отдельным почтовым ящиком или группой почтовых ящиков.
Обычно почтовый ящик состоит из двух частей: (1) необязательного отображаемого имени, которое указывает имя получателя (которое может быть человеком или системой), которое может отображаться пользователю почтового приложения, и (2) адрес со спецификацией addr, заключенный в угловые скобки («<" и ">«). Существует альтернативная простая форма почтового ящика, в которой адрес addr-spec отображается отдельно, без имени получателя или угловых скобок. Адрес Интернет-адреса описан в разделе 3.4.1.
Источник 3.4. Указание адреса
Смотрите также Приложение A.1.2. Различные типы почтовых ящиков
И все же это в RFC5322, вы просто недостаточно осторожны:
address = mailbox / group
mailbox = name-addr / addr-spec
name-addr = [display-name] angle-addr
angle-addr = [CFWS] "<" addr-spec ">" [CFWS] / obs-angle-addr
group = display-name ":" [group-list] ";" [CFWS]
display-name = phrase
mailbox-list = (mailbox *("," mailbox)) / obs-mbox-list
address-list = (address *("," address)) / obs-addr-list
group-list = mailbox-list / CFWS / obs-group-list
Давайте разберемся с этим.
address
либо mailbox
или group
. А mailbox
это name-addr
или же addr-spec
.
Этот name-addr
это формат, о котором вы спрашиваете: есть необязательный display-name
(это необязательно, потому что он определен в квадратных скобках), за которым следует angle-addr
, который сам по себе addr-spec
в угловых скобках с дополнительным складным пространством CFWS
по обе стороны от него (определено далее в раздел 3.2.2) или устаревший формат адреса obs-angle-addr
.
Целое раздел 3.4.1 посвящен описанию addr-spec
формат.
Итак, в заключение:
John Doe <john@example.com>
этоname-addr
, который является вариантомmailbox
, который является вариантомaddress
.John Doe
этоdisplay-name
<john@example.com>
являетсяangle-addr
john@example.com
являетсяaddr-spec
john
этоlocal-part
example.com
этоdomain
.
Picardfacepalm
— Эрик Айгнер
6 часов назад