MIME означает «Многоцелевые расширения электронной почты Интернета». Это звучит как сложно, так и бессмысленно, но MIME захватывает оригинальные возможности электронной почты в Интернете.
Сообщения электронной почты были определены RFC 822 (и более поздними версиями RFC 2822) с 1982 года, и они, вероятно, будут продолжать выполнять этот стандарт в течение длительного времени.
Ничего, кроме текста, простого текста
К сожалению, RFC 822 страдает от ряда недостатков. В частности, сообщения, соответствующие этому стандарту, не должны содержать ничего, кроме простого текста ASCII.
Чтобы отправлять файлы (например, изображения, документы или программы текстового процессора), сначала нужно сначала преобразовать их в обычный текст, а затем отправить результат преобразования в теле сообщения электронной почты. Получателю необходимо извлечь текст из сообщения и снова преобразовать его в формат двоичного файла. Это громоздкий процесс, и перед MIME все это нужно было сделать вручную.
MIME исправляет эту проблему, связанную с RFC 822, и позволяет использовать международные символы в сообщениях электронной почты. С ограничением RFC 822 простым (английским) текстом это было невозможно.
Отсутствие структуры
Помимо ограничений на символы ASCII, RFC 822 не идентифицирует структуру сообщения или формат данных. Поскольку ясно, что вы всегда получаете один мусор из текстовых данных, это не было необходимо, когда стандарт был определен.
MIME, напротив, позволяет отправлять несколько фрагментов разных данных в одном сообщении (например, изображение и документ Word), и он сообщает почтовому клиенту получателя, в каком формате находятся данные, чтобы они могли делать интеллектуальные варианты отображения сообщения.
Когда вы получаете изображение, вам больше не нужно выяснять, что его можно просмотреть с помощью средства просмотра изображений. Ваш почтовый клиент либо отображает само изображение, либо запускает программу на вашем компьютере, которая может.
Основываясь на RFC 822 и расширяя
Теперь как работает MIME-магия? В основном, он использует громоздкий процесс отправки произвольных данных в обычный текст, описанный выше. Стандарт сообщений MIME не заменяет стандарт, установленный в RFC 822, но расширяет его. Сообщения MIME не могут содержать ничего, кроме текста ASCII.
Это означает, что все электронные данные все равно должны быть закодированы в виде обычного текста до отправки сообщения и должны быть снова декодированы в исходный формат на принимающей стороне. Ранним пользователям электронной почты приходилось делать это вручную. MIME делает это для нас комфортно и легко, обычно с помощью интеллектуального процесса, называемого кодировкой Base64.
Жизнь как сообщение электронной почты MIME
Когда вы составляете сообщение в почтовой программе, способной к MIME, программа выполняет примерно следующее:
- Если сообщение имеет только текст в формате ASCII, он оставляет его в покое и только указывает почтовому клиенту получателя ожидать ничего, кроме простого текста.
- Если сообщение содержит одно или несколько вложений и тело с форматированием HTML, каждая часть рассматривается и обрабатывается отдельно.
Во-первых, определяется формат данных. Это необходимо, чтобы сообщить почтовому клиенту получателя, что делать с данными, и обеспечить правильное кодирование, чтобы во время передачи ничего не терялось.
Затем данные кодируются, если они находятся в формате, отличном от обычного текста ASCII. В процессе кодирования данные преобразуются в простой текст, подходящий для сообщений RFC 822.
Наконец, закодированные данные вставляются в сообщение, а почтовый клиент получателя уведомляется о том, какие данные ожидать: имеются ли вложения? Как они закодированы? В каком формате находился исходный файл?
На конце получателя процесс отменяется. Во-первых, клиент электронной почты считывает информацию, добавленную почтовым клиентом отправителя. Должен ли я искать вложения? Как их декодировать? как обрабатывать полученные файлы? Затем каждая часть сообщения извлекается и декодируется, если необходимо. Наконец, клиент электронной почты отображает полученные детали пользователю. Тело обычного текста отображается в строке в почтовом клиенте вместе с вложением изображения. Программа, также прикрепленная к сообщению, отображается с иконкой вложения, и пользователь может решить, что с ней делать. Она может сохранить ее где-то на своем диске или запустить ее непосредственно из программы электронной почты.