【问题标题】:getting a .jpg attachment from email and saving to a file [duplicate]从电子邮件中获取.jpg附件并保存到文件[重复]
【发布时间】:2018-10-09 16:15:16
【问题描述】:

我有 130 张学生照片要下载。我不想手动执行此操作,所以我认为 Python 可以提供帮助。如何将我的照片保存在我的计算机上?

我已经走到这一步了:

import sys
import pyzmail
import email
from imapclient import IMAPClient

HOST = 'imap.server.com'
USERNAME = 'meAt@foxmail.com'
PASSWORD = 'myIMAPpassword'

pathToFiles = '/home/pedro/getEmailtexts/emailTexts/'
server = IMAPClient(HOST, use_uid=True, ssl=True)
server.login(USERNAME, PASSWORD)
select_info = server.select_folder('Inbox')

messages = server.search('UNSEEN')
for uid, message_data in server.fetch(messages, 'RFC822').items():
    email_message = email.message_from_bytes(message_data[b'RFC822'])
    print(uid, email_message.get('From'), email_message.get('Subject'))

我得到这样的输出:

54 佩德罗·罗德里格斯 studi1

55 佩德罗·罗德里格斯 studi2

56 佩德罗·罗德里格斯 studi3

57 Pedro Rodriguez 再次测试

58 =?GBK?B?scu1ww==?= 58 =?GBK?B?scu1ww==?= =?GBK?Q?Fw:_=B9=F9=D3=EE=BC=D1_1825010321?=

59 =?GBK?B?scu1ww==?= jpg

UID 59 有一张照片,我发了,所以我试了一下:

len(email_message.get_payload())  
2  
attachment = email_message.get_payload()[1]  
attachment.get_content_type()  
'image/jpeg'

所以附件是我的照片。

如何将我的照片保存在我的计算机上?

我试过了:

file = 'email59.txt'  
theFile = open(pathToFiles + file, 'a')  
theFile.write(attachment)  
Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    theFile.write(attachment)
TypeError: write() argument must be str, not Message

【问题讨论】:

    标签: python


    【解决方案1】:

    您可以使用 Python 图像库 (PIL) 编辑并保存照片。 这是一个站点的链接,您可以在其中查看它是如何安装和使用的:https://www.geeksforgeeks.org/working-images-python/

    【讨论】:

    • 谢谢,但我有 130 张 jpg 文件要下载。我只想自动执行此操作。我不想编辑。
    • PIL有一个img.save方法,img.save(path, format) #格式是可选的,如果没有指定格式,#根据文件扩展名确定
    • 如果我知道如何获取 jpg,我想我可以保存它,但我不能,作为一个非计算机人。我只是设法从电子邮件中获取文本!
    猜你喜欢
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2015-05-07
    • 1970-01-01
    • 2016-04-29
    • 2011-08-20
    相关资源
    最近更新 更多