使用mimetypes.guess_type与email.mime.base.MIMEBase
我正在制作SMTP格式的ASCII邮件,里面要包含附件,并希望自动提取附件的“内容类型”。为此,我使用mimetypes.guess_type这个工具,然后把结果用在邮件正文中,使用email.mime.base.MIMEBase。
我遇到的问题是,mimetypes.guess_type返回的是一个完整的字符串,比如说image/jpeg。但email.mime.base.MIMEBase需要的是两个单独的变量,比如image和jpeg。
有没有简单的方法可以做到这一点(也就是说,不用使用email.mime.base.MIMEBase的其他方法),这样我就不需要在使用之前解析mimetypes.guess_type的结果了?
为了让这两个库能够一起工作,还要做这些额外的步骤,感觉有点麻烦,所以我在想是不是还有其他更简单的方法。
谢谢。
1 个回答
2
其实,用Python来做这种“解析”是非常简单的。你可以试试下面的代码:
format, enc = mimetypes.guess_type(filename)
main, sub = format.split('/')
mb = MIMEBase(main, sub)
或者你还可以用更简洁的方式:
format, enc = mimetypes.guess_type(filename)
mb = MIMEBase(*format.split('/'))