Могу ли я пропустить MIME-разбор, чтобы получить вложение?

Я новичок здесь, поэтому прежде всего мои поздравления вам

Я пишу приложение для запуска на моем Windows Mobile (Pocket PC). К вашему сведению, я использую VB.NET.

Моя идея состоит в том, чтобы использовать мою учетную запись электронной почты с моим провайдером, который дает мне много ГБ для использования в качестве виртуального диска онлайн-хранилища. В двух словах, более или менее похожий на GMAIL-привод, о котором вы, возможно, читали. Я уже написал код для подключения, используя telnet-сокет, к учетным записям SMTP, POP3 и IMAP моего провайдера. Я могу войти и, таким образом, пока все хорошо.

В моем конкретном случае, я не заинтересован в самих электронных письмах, но на самом деле вложения, которые будут мои файлы на этой виртуальной карте storgae. Я нашел много бесплатных классов, в основном на C #, для загрузки электронных писем с вложениями и, самое главное, MIME-парсинга. К сожалению, все эти классы, так или иначе, используют классы / пространства имен Net Framework, которые не включены в NET Compact Framework, который используется Windows Mobile. Сама запись MIME-парсера слишком сложна для меня и моих знаний.

Поэтому, по крайней мере, в отношении моего кода для получения через POP3 или IMAP, я думал, что, как только я скачаю все байты на моем устройстве, я просто проанализирую полную электронную почту (проверяя, где границы) и получу часть (s) которые были закодированы в Base64, а затем декодировали и переименовывали его, используя имя и расширение файла, который я написал в поле темы сообщения электронной почты во время отправки. Таким образом, я мог бы избежать всего, что касается MIME и всех его значений ...

Что касается отправки SMTP, я все еще должен изучить это. Любые идеи были бы хорошы.

Извините за этот роман - как вы думаете - могу ли я пропустить получение MIME-парсеров и просто использовать обычный разбор строк?

С уважением, Moster67

11.12.2008 16:58:44
3 ОТВЕТА
РЕШЕНИЕ

Парсер MIME - это просто парсер строк. Их очень легко написать, особенно если вы знаете, что вам нужно / нужно подмножество типов MIME. Найти RFC и реализовать его самостоятельно.

1
11.12.2008 17:04:21
Спасибо. Вы подтвердили то, во что я верил, то есть, что, вероятно, хак с использованием обычного анализа строк может сработать
moster67 15.12.2008 16:28:32
«Их очень легко написать»? Я бы сказал: «Они не так уж плохо пишут ...». То, что говорит Писквор, - это мой опыт, о хрупкости.
Corey Trager 2.03.2009 02:38:32

Вы можете попытаться найти границы в заголовках писем, а затем разделить электронную почту на эту строку. ИМХО будет необходим синтаксический анализ подразделов (на ум приходят кодирование и кодировка; в большинстве случаев просто не удалится заголовки), но немного проще, чем работать со всем сообщением сразу.

Предостережение: это хрупкий подход - он будет работать с некоторыми сообщениями, но разбивать на другие (например, вложенные составные сообщения, изменение строки границы (не должно, но может произойти) и т. Д.)

1
11.12.2008 17:12:19
То, что вы упоминаете, более или менее то, что я имел в виду, то есть использование границ. Я попытаюсь найти несколько примеров электронных писем, которые содержат вложенные многочастные сообщения. Спасибо вам за ваши предложения.
moster67 15.12.2008 16:31:20
Вложенные сообщения, состоящие из нескольких частей, не будут иметь значения, потому что маркер границы MIME будет отличаться для вложенного сообщения, чем для корневого сообщения.
Robert C. Barth 15.12.2008 17:51:47

написание строкового парсера почтового сообщения на самом деле является написанием простого MIME-парсера. Вы можете написать быстрый и грязный MIME-парсер за несколько часов. Если вы будете использовать его для разбора похожих писем (например, отправленных из одного места одним и тем же клиентским программным обеспечением), это должно сделать все что вам нужно

Подробнее о MIME смотрите

Несколько дней работы должны быть реалистичными. Я принимал участие в разработке простого собственного MIME-парсера (на взлом которого ушло несколько дней и проанализировал 95% полученных писем), который превратился в коммерческий продукт (несколько месяцев работы, тонны юнит-тестов и куча по-настоящему необычных тестовых писем). от дикого), а затем был изменен, чтобы его можно было использовать в Compact Framework (изменения из-за устройств с ограниченным объемом памяти, изменения, потому что только небольшая часть .NET Framework портирована на .NET CF). И добавьте переписывание довольно большой части функциональности CryptoAPI, чтобы заставить подписанную и зашифрованную электронную почту S / MIME работать на .NET CF.

Парсер MIME является частью компонента Rebex Secure Mail для .NET / .NET CF и может быть загружен с http://www.rebex.net/secure-mail.net/

Все версии .NET и .NET CF поддерживаются. Даже .NET CF1 динозавр ;-). Тем не менее, это не бесплатно.

1
1.12.2009 20:10:22
интересно. Да, я знал о ваших продуктах (если я вспоминаю, я даже пробовал несколько), но так как мое приложение должно было быть бесплатным, мне пришлось искать альтернативный способ. В настоящее время мой проект приостановлен, но я, вероятно, справлюсь с ним, когда найду свободное время.
moster67 5.12.2009 08:58:03