Що таке файл TNEF?
Transport Neutral Encapsulation Format (TNEF) є власністю Microsoft для інкапсуляції вкладень електронної пошти на основі програмного інтерфейсу обміну повідомленнями (MAPI). Microsoft Outlook і Microsoft Exchange Server повністю підтримують TNEF, а пізніше декодують TNEF у MAPI та відображають відформатовані листи. Вкладення електронної пошти з кодуванням TNEF має тип MIME MS-TNEF і зберігається як winmail/win.dat. Вкладення у winmail .dat містить таку інформацію:
Повідомлення | Об’єкти OLE | Функції Outlook |
---|---|---|
Оригінальні вкладення до повідомлень Оригінальна відформатована версія шрифти, розмір тексту та кольори тексту | вбудовані картинки вбудовані документи Office | нестандартні форми кнопки голосування запити на зустрічі |
Інші служби електронної пошти, які не підтримують TNEF, представляють звичайний текст для повідомлень у форматі TNEF. Outlook вбудовує розширений формат повідомлення у файли TNEF (OLE) або певні функції Outlook (форми, кнопки опитування та запрошення на конференцію). Дозволити явне кодування TNEF у поштовому клієнті Outlook неможливо, однак вибір формату RTF для надсилання електронної пошти неявно полегшує кодування TNEF.
Формат файлу TNEF
Алгоритм даних TNEF створює згладжену структуру з розширених ієрархічних властивостей повідомлень. Потім ці згладжені структури використовуються для представлення послідовного потоку даних, що складається з певних властивостей.
У деяких ситуаціях, коли властивості зустрічаються в групах або мають кілька значень, потік може містити підрахунки та відступи для забезпечення певного вирівнювання даних. Особливою ситуацією, коли використання цього алгоритму є вигідним, є непідтримуване середовище обміну повідомленнями. У таких середовищах властивість розширеного повідомлення кодується в послідовний потік даних за допомогою TNEF Writer. Крім того, властивості, які не належать до основного TNEF, можуть бути інкапсульовані під час передачі. Потім ці інкапсульовані властивості стають доступними шляхом декодування через TNEF, щоб гарантувати доступність усіх властивостей вихідного повідомлення клієнтській програмі.
У TNEF усі типи числових даних мають порядковий порядок байтів, а їхній розмір перевищує один байт. Обробка цих числових значень на платформах без порядкового порядку вимагає виконання відповідних перетворень, щоб отримати правильні значення. Рядкові значення представлено у форматі доповненої форми Бекуса-Наура (ABNF) відповідно до специфікацій [RFC5234]. Коли рядок закінчується нульовим символом, він також включається; наприклад, "worker@specimen.com" %x00
.
Атрибути TNEF і правила обробки
Потік даних у TNEF починається з номера старої версії, підпису, значення примітивного ключа та атрибута, що представляє кодову сторінку. Ця кодова сторінка створюється, коли кодувальник записує атрибути та властивості ANSI. Після цього потік перетворився на серію атрибутів, у якій спочатку вишикувалися атрибути повідомлення, а потім – атрибути вкладення. Різні характеристики повідомлень і вкладень містяться в спеціальних атрибутах, таких як attMsgProps, attAttachment і attRecipTable. Атрибути, які з’являються в потоці TNEF, містять структуру, властивості повідомлення та перетворення, необхідні для взаємодії з властивостями повідомлення. Кожен атрибут складається з ідентифікатора, розміру та даних атрибута, контрольної суми та рівня відповідно до його застосування.
Відношення до протоколів та інших алгоритмів
Системи, які мають поганий механізм відображення формату розширеного повідомлення, потребують алгоритму даних TNEF для транспортування. Використовуючи тип медіа ms-TNEF, вихід алгоритму складається з файлу вкладення (winmail.dat) і основної частини MIME, зазначеної в [RFC2045]. Тіло звичайного текстового повідомлення передається за допомогою UUENCODE відповідно до специфікації [MSDN-UAF], і це тіло повідомлення або еквівалентний метод декодується на стороні одержувача. Крім того, TNEF може передавати дані повідомлень за допомогою різних інтернет-протоколів, таких як SMTP, POP3, IMAP4, а також протоколів MIME відповідно до стандарту RFC2045.
Заява про застосовність
На додаток до простої передачі повідомлень, початкова програма TNEF мала бути створена для використання класів повідомлень і підтримки додаткових функцій, які не мають вихідної підтримки в транспортному протоколі. Цю програму було додатково вдосконалено для передачі розширених властивостей повідомлень і іменованих властивостей, які сучасні клієнти обміну повідомленнями використовують зараз. Для відповідності оригінальній реалізації оригінальний синтаксис атрибута зберігається, а спеціальний атрибут зберігає нові властивості повідомлення окремо.
Список літератури
- Формат транспортної нейтральної інкапсуляції
- [Адреси електронної пошти та адресні книги в Exchange Server](https://learn.microsoft.com/en-us/exchange/email-addresses-and-address-books/email-addresses-and-address-books?view# exchserver-2019)
- [MS-OXTNEF]: алгоритм даних транспортного нейтрального формату інкапсуляції (TNEF)