seanyboy, я могу помочь вам здесь, но прежде чем вы посмотрите на коммерческие решения, вам нужно понять пару вещей.
Во-первых, существуют сотни или тысячи средств управления, позволяющих делать то, что вы хотите.
Но вы должны подумать, КАК вы собираетесь их использовать. Раньше я работал в антивирусной компании, и когда мы решили подключить наш продукт к Exchange, стало очевидно, что выбранное нами решение НЕ будет работать. Проблема заключалась в том, что коммерческие приложения следуют RFC (обычно) до T. (Или это TEE? Я не знаю ..) Но вирусы НИКОГДА не следуют стандартам RFC. Итак, я закончил тем, что написал свой собственный парсер Mime для нашего сканера, и мой уровень обнаружения был НАМНОГО лучше, чем все, что мы пробовали. Почему? Потому что каждый раз, когда я обнаруживал электронное письмо, нарушающее RFC, я настраивал код, чтобы с ним справиться. На ум приходит один пример: «Content-Type: maintype / subtype; param =». Обратите внимание на пробел после параметра и равно. Это нарушает правила RFC, но большинство читателей почты с этим справляется, позволяя вирусу делать это.
Но это также двусторонняя монета .... В МОЕМ коде я не смог декодировать вложение, отформатированное следующим образом:
....
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
http://virus.virussite.com
JVBERi0xLjMgCiXi48/TIAo3IDAgb2JqCjw8Ci9Db250ZW50cyBbIDggMCBSIF0gCi9QYXJlbnQg
NSAwIFIKL1Jlc291cmNlcyA2IDAgUgovVHlwZSAvUGFnZQo+PgplbmRvYmoKNiAwIG9iago8PAov
...
Но у коммерческих приложений не было проблем с его анализом ... Скорее всего, потому, что они снова следовали RFC и не принимали данные Base64, если они не были точно 77 символов (я думаю, 77 - это стандарт RFC .. Я бы чтобы сослаться на это.).
Но у меня были большие проблемы с неработающим B64 и B64, который выполнялся в одной строке и т.д., и его нужно было декодировать, поэтому я взял все в блоке данных как данные Base64, которые на самом деле были действительными символами base64. Все остальное просто пропустили ...
В любом случае, их ключевой момент - решить, что вам НУЖНО из-под этого контроля, а затем решить, хотите ли вы написать свое собственное, купить коммерческое или даже заплатить кому-то (например, мне), чтобы он написал его для вас.
(Я не совсем уверен, что мое последнее предложение приемлемо правилами переполнения стека, поэтому я не прошу вас, просто скажу, что вы знаете свои варианты. Я упоминаю этот вариант, потому что у вас будет доступ к исходному коду, и в состоянии поддерживать его самостоятельно или найти кого-то другого, кто будет его поддерживать, если вы решили разорвать отношения со своим разработчиком. Это не вариант для 99,99% коммерческих решений ...) приложение, ну ты накрутила .. :)
Надеюсь, это поможет или, по крайней мере, даст вам что-нибудь почитать. хех ..
Дай мне знать, если я могу еще чем-нибудь помочь.
person
LarryF
schedule
07.01.2009