def parse_attachment(part):
"""
Get attachments of an email
:param `Message` part: A `Message`
:rtype: list
:return: The list of attachments
"""
attachment = {}
attachment['content_type'] = part.get_content_type()
if attachment['content_type'].lower() in ['message/rfc822', 'message/delivery-status']:
attachment['content'] = str(part)
else:
attachment['content'] = part.get_payload(decode=True)
filename = part.get_filename()
if not filename:
filename = hashlib.sha1(attachment['content']).hexdigest()
if attachment['content_type']:
extension = mimetypes.guess_extension(attachment['content_type'])
if extension:
filename += extension
attachment['filename'] = get_valid_filename(utils.decode_every_charset_in_the_world(filename))
return attachment
评论列表
文章目录