В общем пришлось мне по долгу службы налабать скриптец на Python'е.
Язык оказался простым до безобразия, а вот возможности его библиотек меня несколько удивили. Ну вот простенький примерчик. Данный скрипт берет на вход почтовое сообщение в формате MSG и разбирает его по косточкам, попутно сохраняя все вложения в файлы.
Можете взять мой
тестовый файлик с вложением. Там содержится одно текстовое сообщение и word-овый документ.
Коментарии лучше удалить, ибо интерпретатор на родном мне русском языке их не понимает :)
import sys, email.message, string
# берем имя файла из командой строки и читаем сообщение
file = open(sys.argv[1])
message = email.message_from_file(file)
# выводим основные поля
print "From: " + message.__getitem__("From")
print "To: " + message.__getitem__("To")
print "Subject: " + message.__getitem__("Subject") + "\n"
print "Message content:"
count = 0
# гуляем по всем part'ам сообщения
for part in message.walk():
# это контейнер, нам он не нужен
if part.is_multipart():
continue
count += 1
# ну здесь можно чего угодно понаписать
# на самом деле расширение файла не принципиально для этого пример
contType = part.get_content_type()
if contType.startswith("text"):
filename = "part" + str(count) + ".txt"
elif part.get_filename() != None:
# это файл атачмента
filename = part.get_filename()
else:
filename = "part" + str(count) + ".dat"
print "Part", count, "has type: " + contType
# сохраняем
f = open(filename, "wb")
# decode = True автоматом декодирует вложение например из base64
f.write(part.get_payload(decode=True))
f.close()
print "saved as " + filename
PS: Кстати, к IntelliJ Idea есть плагин Pythonid, который не только поддерживает подсветку синтаксиса, но и поддерживает простейшие рефакторинги, типа Rename %)