Что означают цифры в электронном письме из нескольких частей? - PullRequest
3 голосов
/ 27 апреля 2009

Я смотрю на источник многосоставного сообщения от Thunderbird (в надежде написать свое собственное многосоставное сообщение из C ++ / Javascript)

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

This is a multi-part message in MIME format.

------=_NextPart_32252.1057009685.31.001
Content-Type: multipart/alternative;
    boundary="----=_NextPart_32252.1057009685.31.002"
Content-Description: Message in alternative text and HTML forms


------=_NextPart_32252.1057009685.31.002

(как видно здесь )

Остальная часть кода сообщения имеет смысл для части сообщения.

Ответы [ 2 ]

15 голосов
/ 27 апреля 2009

Числа, которые вы видите в ограничителях границ, не обязательно означают что-либо (хотя RFC не мешает разработчику пытаться включить какое-то значение).

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

С RFC 2046 :

5,1. Multipart Media Type

В случае составных объектов, в котором один или несколько разных наборов данных объединяются в одно тело, поле мультимедийного типа должно появляются в заголовке объекта. тело должно содержать один или несколько части тела, каждая из которых предшествует a граница границы ...

Как указывалось ранее, каждой части тела предшествует граница разделительная линия, которая содержит граничный разделитель. Граница разделитель НЕ ДОЛЖЕН появляться внутри каких-либо инкапсулированных частей на строка отдельно или в качестве префикса любой строки ...

...

5.1.1. Общий синтаксис

Поле Content-Type для составные объекты требуют одного параметр "граница". Граница Затем разделительная линия определяется как линия, состоящая целиком из двух дефисные символы ("-", десятичное значение 45) с последующей границей значение параметра из Content-Type поле заголовка, необязательный линейный пробел и завершающий CRLF.

...

ПРИМЕЧАНИЕ: Поскольку ограничители не должны появляться в частях тела будучи инкапсулированным, пользовательский агент должен проявлять осторожность, чтобы выбрать уникальное значение граничного параметра. Значение граничного параметра [может быть] результатом алгоритма, предназначенного для производить граничные разделители с очень низкой вероятностью уже существующие в данных, которые будут инкапсулированы без предварительного сканирования данные. ... Простейшая граница разделительной линии - это что-то вроде "---", с закрывающей границей разделительной линии "-----".

3 голосов
/ 27 апреля 2009

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

...