2013-10-02 1 views
0

Мне было поручено изучить функцию электронной почты, которую мы имеем, которая отправляет письма с использованием uuencoding на что-то еще более широко принятое. Я предполагаю, что были проблемы, в которых получатели не получают файлы прикрепленных файлов (.csv), потому что они являются uuencoded.Переключить uuencoding в MIME

Я предполагаю, что мы хотим переключить это на MIME-кодирование?

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

ответ

1

Да, вы хотите переключиться на 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() заголовки адресов на ',' и т. Д. ... он буквально завопил любительский час. Это было так плохо, что я мог заплакать (но я этого не сделал, потому что я такой мужественный).