Использование mimetypes.guess_type с email.mime.base.MIMEBase - PullRequest
1 голос
/ 14 декабря 2011

Я создаю электронную почту SMTP ASCII для включения вложений и хочу автоматизировать извлечение «типа контента» из предложенного вложения с помощью mimetypes.guess_type, а затем с помощью результата добавить его в тело письма с помощью email.mime .base.MIMEBase.

Проблема, с которой я сталкиваюсь, заключается в том, что mimetypes.guess_type создает единственную строку, содержащую полный тип содержимого, например изображение / JPEG. Но email.mime.base.MIMEBase предполагает две отдельные переменные, например, image и jpeg.

Есть ли чистый способ сделать это (то есть другое определение, отличное от email.mime.base.MIMEBase), чтобы мне не приходилось анализировать результат из mimetypes.guess_type, прежде чем я смогу его использовать?

Кажется утомительным, что это должно быть сделано для того, чтобы эти две библиотеки работали вместе, поэтому я предполагаю, что мне не хватает другого более простого способа сделать это.

Спасибо.

1 Ответ

1 голос
/ 14 декабря 2011

Ну, такой вид "разбора" очень прост с питоном. Вы можете попробовать код ниже:

format, enc = mimetypes.guess_type(filename)
main, sub = format.split('/')
mb = MIMEBase(main, sub)

или даже более компактный:

format, enc = mimetypes.guess_type(filename)
mb = MIMEBase(*format.split('/'))
...