将邮件从IMAP复制到Gmail并保留ORG日期



iam在脚本上工作,将邮件从imap服务器通过imap移至gmail。

我得到了它来复制邮件并创建标签,但是它设置了现在的日期,而不是原始日期,当我查看gmail时。

# fetch header of current mail form old server to get date
result, header = From.uid('fetch', num, '(BODY[HEADER.FIELDS (DATE SUBJECT)])')
headerdic = headerparser.parsestr(header[0][1])
# add dobble qoutes around date
date = '"' + headerdic["Date"] + '"'
# get mail content
result, data = From.uid('fetch', num, '(RFC822)')
mgs = data[0][1]
# append mail to server
To.append(folder_name, None, date, mgs)

我在文档中阅读了Dobble Qoutes是导入的,但没有接缝以进行差异。

更新

我发现以下解决方案有效

result, header = From.uid('fetch', num, '(BODY[HEADER.FIELDS (DATE SUBJECT)])')
headerdic = headerparser.parsestr(header[0][1])
pz = email.utils.parsedate_tz(headerdic["Date"])
stamp = email.utils.mktime_tz(pz)
date = imaplib.Time2Internaldate(stamp)
result, data = From.uid('fetch', num, '(RFC822)')
mgs = data[0][1]
To.append(folder_name, None, date, mgs)

我可能会更早地拥有正确的解决方案,但是我的邮件仍在gmail中的垃圾中,因此它只是在我没有发送日期的早期测试中重复了一个。

尝试逃脱引号。date = '"' + headerdic["Date"] + '"'

最新更新