python - 将 mimetypes.guess_type 与 email.mime.base.MIMEBase 一起使用

标签 python smtp mime-types

我正在构建 SMTP ASCII 电子邮件以包含附件,并希望使用 mimetypes.guess_type 自动从建议的附件中提取“内容类型”,然后使用结果通过 email.mime 将其添加到邮件正文中.base.MIMEBase。

我遇到的问题是 mimetypes.guess_type 生成一个包含完整内容类型的字符串,例如图像/jpeg。但 email.mime.base.MIMEBase 需要 2 个独立的变量,例如 image 和 jpeg。

是否有一种干净的方法来执行此操作(即与 email.mime.base.MIMEBase 不同的定义),以便我不必在使用 mimetypes.guess_type 之前解析结果?

为了让这两个库一起工作,必须这样做似乎很乏味,所以我假设我错过了另一种更简单的方法。

谢谢。

最佳答案

嗯,这种“解析”对于 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('/'))

关于python - 将 mimetypes.guess_type 与 email.mime.base.MIMEBase 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8496779/

相关文章:

django - 无法通过 Django View 打开作为附件返回的 XLS

php - 如何修复 Firefox 尝试 "Save image as".htm?

python - FastAPI:如何访问依赖项内的 APIRoute 对象

c# - 在 asp.net 中获取电子邮件附件大小

python - 如何使用 python smtplib 向多个收件人发送电子邮件?

smtp - 防止电子邮件分组到 Gmail 中的对话 View

iis - 带有 Mime 映射的无扩展 URL

python - 如何使用 Django-mama-CAS 限制每个用户对各种服务的访问?

python - 从一组起点和终点绘制线段

python - 使用 self 论证