将邮件从Imap复制到Gmail并保留组织日期

时间:2012-10-22 09:19:41

标签: python date imaplib

我正在编写一个脚本,通过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)

我在documentation中读到了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)

可能我之前有正确的解决方案,但我的邮件仍然在垃圾邮件中,所以它只是重复使用了我没有发送日期的早期测试。

1 个答案:

答案 0 :(得分:0)

尝试转义引号。 date = '\"' + headerdic["Date"] + '\"'