Минимальный размер электронного письма в байтах - PullRequest
0 голосов
/ 20 апреля 2019

Какой минимальный размер в байтах действительного электронного письма (не зависит от языка программирования)

  • автономный необработанный текст (без вложений только в тему, тему и тело в 1 байт)
  • отправлено по SMTP (издержки протокола + размер электронной почты)
  • получено через POP3 (издержки протокола + размер электронной почты)
  • получено через IMAP (издержки протокола + размер электронной почты)
  • mime multipart в первом случае, но с двумя телами для text / plain и text / html и телом вложения с 1-байтовым файлом

Ответы [ 2 ]

1 голос
/ 20 апреля 2019

Итак, я только что прочитал учебник, чтобы ответить на часть этого вопроса о формате / структуре основного письма. Я начал со следующей команды

$ nc -C {smtp-server-fqdn} 25

Вот дамп разговора {параметризован с опущенными секретами}

220 {smtp-server-fqdn} ESMTP
EHLO {yourdomain.ext}
{smtp-server-fqdn}
250-PIPELINING
250-SIZE 40960000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250 8BITMIME
HELO {yourdomain.ext}
250 {smtp-server-fqdn}
AUTH LOGIN
334 VXNlcm5hbWU6
{username|base64}
334 UGFzc3dvcmQ6
{password|base64}
235 2.7.0 Authentication successful
MAIL FROM: <someone@sender-fqdn>
250 2.1.0 Ok
RCPT TO: <someone@recipient-fqdn>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: "{VanitySenderName}" <someone@sender-fqdn>
To: "{VanityRecipientName}" <someone@recipient-fqdn>
Subject: {subject}
Date: {date}
{message body}
.
250 2.0.0 Ok: queued as {identifier}
QUIT
221 2.0.0 Bye
<ctrl>+<c>

Так, чтобы сломать это

сама полезная нагрузка электронной почты (следующая строка после DATA до .) занимает минимум 75 байт

From: <a@b>
To: <a@b>
Subject: c
Date: Sat, 20 Apr 2019 13:25:00 +0100
d
.

Честно говоря, это едва ли действительный адрес электронной почты. У него есть два дополнительных поля к минимуму согласно https://tools.ietf.org/html/rfc5322#page-21 Это от, до, предмет, дата и тело. Если что-то из этого отсутствовало, я думаю, ваш провайдер электронной почты должен отклонить их.

Фактическое тело, которое я отправил, чтобы проверить это с моей реальной электронной почтой и провайдером (dreamhost), составило 151 байт, потому что электронные письма были реальными, а домен был длиннее символа.

Более интересно, что конверт взял это до 468 байт (для реальной электронной почты с аутентификацией, не включающей ответы сервера), но теоретически может быть меньше (146 байт с односимвольным доменом без расширения, только для лабораторных и внутренних)

EHLO c
HELO c
AUTH LOGIN
a
b
MAIL FROM: <a@b>
RCPT TO: <a@b>
DATA
From: <a@b>
To: <a@b>
Subject: c
Date: Sat, 20 Apr 2019 13:25:00 +0100
d
.
QUIT

Это <1 КБ, поэтому подходит для встроенных систем, но при этом отсутствуют транспортные издержки и некоторые функции, такие как поддержка нескольких частей. </p>

Все, что вам нужно сделать, чтобы использовать это, это снабдить себя библиотекой сокетов для открытия соединения, кодировщиком base64 (для простого пользователя + пароль), утилитой генерации строки даты и элементарными навыками командной строки.

Это ни в коем случае не полный ответ, но он отвечает на два случая с необходимыми предостережениями для понимания начинающего, разбирающегося с технологией.

0 голосов
/ 20 апреля 2019

Кажется, это не вопрос программирования, верно?Возможно, стоит уточнить, или он будет закрыт.

Десятки байтов в каждом случае.40-45 байт для минимального действительного сообщения, ближе к 100 с вложением.Некоторые из них зависят от того, как вы рассчитываете, например, когда сообщение имеет размер 50 байт, большое значение имеет то, включены ли байты для процесса входа в систему IMAP / POP.

Date: 0:00:00 1 May 2019 -0000
From: a@l.is
...