Каков предел длины темы электронной почты?

Сколько символов разрешено находиться в строке темы электронной почты в Интернете? У меня была проверка RFC для электронной почты, но не могла точно определить, как долго это было разрешено. У меня есть коллега, который хочет программно подтвердить его.

Если формальный предел отсутствует, что на практике хорошая рекомендация? Cheers,

Ответ 1

См. RFC 2822, раздел 2.1.1 для запуска.

Существует два ограничения: стандартные места по числу символов в строке. Каждая строка символов ДОЛЖНЫ быть не более 998 символов, и ДОЛЖНО быть не более 78 символов, исключая CRLF.

Как уже упоминалось в RFC, вы можете обойти это ограничение (не то, что вам нужно), сместив объект на несколько строк.

Каждое поле заголовка логически одиночная строка символов, включающая имя поля, двоеточие и полевое тело. Для удобства, однако, и иметь дело с характером 998/78 ограничения на линию, полевое тело часть поля заголовка может быть разделена в многострочное представление; это называется "складыванием". Генерал правило заключается в том, что везде, где этот стандарт позволяет складывать пробелы (не просто символы WSP), CRLF может быть вставлен перед любым WSP. Для Например, поле заголовка:

       Subject: This is a test

может быть представлена ​​как:

       Subject: This
        is a test

Рекомендация для не более 78 символов в заголовке темы звучит разумно. Никто не хочет прокручивать, чтобы увидеть всю тему, и что-то важное может быть отрезано справа.

Ответ 2

RFC2322 утверждает, что заголовок темы "не имеет ограничения по длине"

но для создания длинных заголовков, но вам нужно разбить его на несколько строк, процесс называется "складыванием".

субъект определяется как "неструктурированный" в RFC 5322

здесь некоторые цитаты ([...] указывают, что я опущен)

3.6.5. Informational Fields
  The informational fields are all optional.  The "Subject:" and
  "Comments:" fields are unstructured fields as defined in section
  2.2.1, [...]

2.2.1. Unstructured Header Field Bodies
  Some field bodies in this specification are defined simply as
  "unstructured" (which is specified in section 3.2.5 as any printable
  US-ASCII characters plus white space characters) with no further
  restrictions.  These are referred to as unstructured field bodies.
  Semantically, unstructured field bodies are simply to be treated as a
  single line of characters with no further processing (except for
  "folding" and "unfolding" as described in section 2.2.3).

2.2.3  [...]  An unfolded header field has no length restriction and
  therefore may be indeterminately long.

Ответ 3

после некоторого теста: если вы отправляете электронное письмо клиенту Outlook, а тема → 77 символов, и ему нужно использовать "=?ISO" внутри объекта (в моем случае из-за акцентов), то OutLook будет "вырезать", субъект посередине и сетка все, что приходит после, включая текст тела, прикрепляет и т.д.... все сетки!

У меня есть несколько примеров, подобных этому:

Subject: =?ISO-8859-1?Q?Actas de la obra N=BA.20100154 (Expediente N=BA.20100182) "NUEVA RED FERROVIARIA.=

TRAMO=20BEASAIN=20OESTE(Pedido=20PC10/00123-125),=20BEASAIN".?=

To:

Как вы видите, в строке темы он срезается на char 78 с "=", за которым следуют 2 или 3 строки, затем продолжается с остальной частью объекта.

Сообщалось мне от нескольких клиентов, которые все, где используют OutLook, другие почтовые клиенты справляются с этими темами в порядке.

Если у вас нет ISO на нем, это не повредит, но если вы добавите его к своей теме, чтобы быть хорошим для RFC, вы получите этот сюрприз от OutLook. Бит, если вы не добавите ISO, тогда iPhone-адрес электронной почты не поймет его (и прикреплять файлы с именами, используя такие символы, не будут работать на iPhone).

Ответ 4

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

Я думаю, что некоторые довольно общие ограничения для сюжетных линий вообще (а не только для электронной почты):

  • 80 Персонажи
  • 128 символов
  • 256 символов

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

Надеюсь, это поможет!

Ответ 5

Что важно, какой механизм вы используете, отправьте письмо. Большинство современных библиотек (например, System.Net.Mail) скрывают от вас сворачивание. Вы просто добавили очень длинную строку темы письма без (CR, LF, HTAB). Если вы начинаете пытаться сделать свой собственный фолд, все ставки сняты. Это начнет сообщать об ошибках. Поэтому, если у вас возникла эта проблема, просто отфильтруйте CR, LF, HTAB и дайте библиотеке сделать всю работу за вас. Обычно вы также можете установить тип текста кодирования в виде отдельного поля. Нет необходимости в iso-кодировании в строке темы.