Мне не совсем понятно, почему ваш код зависает. Отступ выглядит немного неверно, а открытые файлы не закрываются должным образом. Возможно, у вас недостаточно памяти.
Эта версия отлично работает для меня:
import email
import mimetypes
with open('email.txt') as fp:
message = email.message_from_file(fp)
for i, part in enumerate(message.walk()):
if part.get_content_maintype() == 'image':
filename = part.get_filename()
if not filename:
ext = mimetypes.guess_extension(part.get_content_type())
filename = 'image-%02d%s' % (i, ext or '.tiff')
with open(filename, 'wb') as fp:
fp.write(part.get_payload(decode=True))
(частично взято из http://docs.python.org/library/email-examples.html#email-examples)