Python - 需要一个字符缓冲区对象?

标签 python email imap

我有以下代码:

import imaplib
import email
import codecs
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('email@gmail.com', 'pass')
mail.list()

mail.select("inbox") 

result, data = mail.uid('search', None, "ALL")
i = len(data[0].split())

for x in range(i):
    latest_email_uid = data[0].split()[x]
    result, email_data = mail.uid('fetch', latest_email_uid, '(RFC822)')
    raw_email = email_data[0][1]
    email_message = email.message_from_string(raw_email)
    save_string = str("/Users/Me/Desktop/Email/" + str(x) + ".txt") 
    myfile = open(save_string, 'a')
    myfile.write(email_message)
    myfile.close()

(我正在尝试将所有电子邮件导出为 txt 文件。)

我收到错误expected a character buffer object

有人知道为什么会这样吗?

谢谢

编辑:错误在 myfile.write(email_message)

最佳答案

email.message_from_string(raw_email) 不返回字符串,而是返回一个 Message 对象。您不能将 Message 对象直接写入文件而不以某种方式对其进行序列化。

关于Python - 需要一个字符缓冲区对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10565633/

相关文章:

sockets - 使用 S22 ImapClient 接收 Gmail 电子邮件时,尝试对无法访问的网络进行套接字操作 [2a00:1450:4013:c01::6d]:993

python - 如何使用Python定义二维数组划分的节号?

python - 尝试显示小部件时出现线程问题

javascript - Javascript 中的 POP3/IMAP 直接实现

php - IMAP 适用于我的本地计算机,但不适用于共享主机

java - 如何从电子邮件应用程序(不是 Gmail)获取未读邮件

python - 安全地使用 raw_input 生成的字符串 (Python)

python - 如何只允许 getter/setter 获取/设置变量值?

email - 从无人机服务器发送电子邮件时出错(证书中的负序列号)

javascript - 在网站上保存电子邮件地址