python - imaplib 未获取文件夹中的所有电子邮件

标签 python email python-2.7 imaplib

我有一个令我困惑的问题。我正在使用 imaplib 在“已发送”文件夹中搜索电子邮件,然后将它们导出到 csv 中。它工作得很好,只是它没有收到所有电子邮件。当天午夜到下午 6 点似乎可以收到电子邮件,而下午 6 点到晚上 11:59 则没有收到任何电子邮件。我相信我在某处读到 imaplib 使用 GMT (也许我错了?)所以这可能是问题所在(我是东部时间)?除了询问社区之外,我不知道如何解决这个问题。

下面的代码示例。我可以提供任何必要的信息来提供帮助。提前致谢!

import imaplib
import datetime
import csv

TODAYSDATE = datetime.date.today().strftime("%d-%b-%Y").strip()
ONEDAYAGO = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%d-%b-%Y").strip()

SERVER = 'server.email.com'
IMAPPORT = 993

CSVFILE = "EMAILS.csv"
EMAILS = []
TO = []

mailbox = imaplib.IMAP4_SSL(SERVER, IMAPPORT)
mailbox.login(USER, PASS)
mailbox.select('Sent')

typ, data = mailbox.search(None, '(since %s before %s)' % (ONEDAYAGO, TODAYSDATE))

for sentto in data[0].split():
    typ, data = mailbox.fetch(sentto, '(RFC822.SIZE BODY[HEADER.FIELDS (TO)])')
    message = data[0][1].lstrip('To: ').strip() + ' '
    print message
    TO.append([message])

TO.insert(0, ['TO'])

TO_FINAL = [l[0] for l in TO]

mailbox.close()
mailbox.logout()

rows = zip(TO_FINAL)

print rows

CSV = open(CSVFILE, 'wb')
WRITECSV = csv.writer(CSV)

for row in rows:
    WRITECSV.writerow(row)

最佳答案

我解决了我的问题。我没有正确关闭我的 CSV 文件。嘘我!这帮助我识别并解决了我的问题 --> https://stackoverflow.com/questions/15772275/writing-to-csv-from-list-write-row-seems-to-stop-in-a-strange-place

关于python - imaplib 未获取文件夹中的所有电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21116498/

相关文章:

email - Azure B2C 电子邮件验证模板自定义

javascript - VKontakte Javascript SDK 用户电子邮件

python - 无法使用 turicreate

python - 在 python 中分组字典键值

python - 使用不同类的函数来连接信号

python - 有没有一种好方法可以在保留 autograd 功能的同时修改 pytorch 张量中的某些值?

css - 如何使用内联样式更改最后一个子项

python - 无法导入 matplotlib

python - 从数据集*编辑*中标准化普朗克定律的 curve_fit 中的值

python - 这种情况下如何让多个python程序进行通信呢?