Да, вы хотите переключиться на MIME. Вы должны знать, однако, что MIME не является кодировкой так же, как UUEncode является кодировкой. MIME по существу является расширением формата сообщения rfc822.
Вы не укажете, какой язык вы планируете использовать, но я бы рекомендовал посмотреть на 1 из 2 библиотек MIME, которые я написал, среди них (если не ) самый быстрый и самый rfc- совместимых библиотек.
Если вы планируете использовать C или C++, взгляните на GMime.
Если вы планируете использовать C#, взгляните на MimeKit.
Единственные другие библиотеки приличная MIME я могу рекомендовать это libetpan (очень низкого уровня C API) и vmime (библиотека все-в-одном C++, который делает MIME, IMAP, SMTP, POP3 и т.д.).
Единственное «преимущество», которое имеет libetpan над GMime, заключается в том, что он реализует собственную библиотеку структур данных, которую он использует внутри, вместо того, чтобы делать то, что я сделал с GMime, которое заключается в повторном использовании широко доступной библиотеки под названием GLib. GLib доступен на каждой платформе, поэтому для меня было бессмысленно изобретать колесо. Кроме того, GLib предлагает систему подсчета очков, которую я использовал. По какой-то причине я не могу понять, люди зависают в зависимости от GLib, жалуясь «omg, зависимость!». как если бы они не были уже добавления зависимости от библиотеки MIME ...
Ох ... Я думаю, если вы используете Java, вы, вероятно, следует посмотреть на использование JavaMail.
Помимо этого, нет других приемлемых библиотек MIME, которые я когда-либо видел. Серьезно, 99% из них страдают от тех же недостатков дизайна и реализации, о которых я рассказывал по телефону a recent blog post. В то время как сообщение в блоге специально посвящено синтаксическим анализаторам C# MIME, то же самое справедливо для всех реализованных JavaScript, C, C++, Go, Python, Eiffel и т. Д. (И я видел лот) ,
Например, меня недавно попросили посмотреть популярный парсер JavaScript MIME. Сначала было использовано strsplit() во всей строке ввода сообщения MIME, чтобы разбить ее на «\ r \ n». Затем он повторяется через каждую из строк strsplit() снова, используя ':', а затем strsplit() заголовки адресов на ',' и т. Д. ... он буквально завопил любительский час. Это было так плохо, что я мог заплакать (но я этого не сделал, потому что я такой мужественный).