当前位置: 首页 > 面试题库 >

获取邮件附件到python文件对象

宗晟
2023-03-14
问题内容

我有一个电子邮件多部分邮件对象,我想将该电子邮件中的附件转换为python文件对象。这可能吗?如果有可能,我应该考虑使用Python中的哪种方法或类来执行此类任务?


问题答案:

我不太了解“电子邮件多部分邮件对象”的意思。您的意思是属于email.message.Message该类的对象吗?

如果这就是您的意思,那很简单。在多部分消息上,该get_payload方法返回消息部分的列表(每个消息部分本身都是Message对象)。您可以遍历这些部分并检查它们的属性:例如,该get_content_type方法返回该部分的MIME类型,该get_filename方法返回该部分的文件名(如果消息中指定了任何文件名)。然后,当您找到正确的消息部分时,您可以调用get_payload(decode=True)以获取解码后的内容。

>>> import email
>>> msg = email.message_from_file(open('message.txt'))
>>> len(msg.get_payload())
2
>>> attachment = msg.get_payload()[1]
>>> attachment.get_content_type()
'image/png'
>>> open('attachment.png', 'wb').write(attachment.get_payload(decode=True))

如果要以编程方式从收到的电子邮件中提取附件,则可能要采取预防措施来防范病毒和特洛伊木马。特别是,您可能只应提取其MIME类型是安全的附件,并且可能要选择自己的文件名,或者至少要清理的输出get_filename



 类似资料:
  • 我一直在使用此脚本向某些员工发送电子邮件,但由于我的系统发生了更改,我现在必须随电子邮件发送附件,我尝试了多个代码来完成此任务,但都没有成功。。。我仍然收到电子邮件,但没有附件,这在这种情况下是毫无意义的,我已经把我正在使用的脚本放在下面 我已经删除了我使用的真实地址和smtp服务器 我也尝试了一些其他的emtods附加的文件,但似乎没有工作任何帮助是大大的

  • 问题内容: 我想发送带有PDF附件的电子邮件。我创建了PDF文件,然后执行了以下操作,但我认为这是错误的: 在发送电子邮件之前,我可以看到附件,但是当我发送电子邮件时,它的发送没有附件,这是因为我没有正确附加文件。 问题答案: 您错了。使用代替。

  • 问题内容: 使用python发送电子邮件时如何添加文档附件?我收到了要发送的电子邮件(请忽略:我正在循环发送电子邮件,每5秒发送一次,仅用于测试目的,我希望每30分钟发送一次,只需将5更改为1800) 到目前为止,这是我的代码。我如何从计算机上附加文档? 问题答案: 这是对我有用的代码-使用python发送带有附件的电子邮件

  • 问题内容: 我正在为一个朋友的婚礼编写一个照相馆网络应用程序,他们希望照相馆供客人提交当天拍摄的数码照片。 在评估了所有选项之后,我认为对于用户来说,最简单的事情是让他们使用熟悉的界面(他们的电子邮件),并让他们将图片作为附件发送。 我已经创建了一个邮箱,但是现在我需要连接并检索这些附件以进行自动处理,以添加到图库系统中。但是如何?您是否看到过这样做的任何教程或预制类? 问题答案: 您正在使用什么

  • 我试图发送一个附加的json文件到电子邮件,但是由于某种原因,在发送/创建电子邮件时,json文件没有被附加。注意:我不希望用户选择要附加的文件,我希望它被固定/自动设置。 我有以下权限在我的 还有密码 编辑1:在做了@piyushpk建议的建议更改后,我现在在选择电子邮件应用程序时会出现以下错误: 然而,根据我的打印声明,文件大小只有69KB。。。

  • 问题内容: 我在理解如何使用Python通过电子邮件发送附件时遇到问题。我已成功通过电子邮件将简单消息通过电子邮件发送。有人可以在电子邮件中说明如何发送附件。我知道在线上还有其他帖子,但是作为Python初学者,我很难理解它们。 问题答案: 这是另一个: