使用 IMAP、Python 向 Gmail 添加标签

问题描述

我正在尝试向 Gmail 的子集添加标签。真的很坑它有效,然后无效,然后仅添加到第一封电子邮件...

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('myaccountxyz@gmail.com',mypassword)

mail.select("my-folder") # finds emails with this label
result,data = mail.uid('search',None,'all')

label_to_add = "label-to-add" # prevIoUsly created in Gmail

for email_uid in data[0].split():
    result,data_single = mail.uid('fetch',email_uid,'(RFC822)')
    raw_email = data_single[0][1]
    email_message = email.message_from_string(raw_email)
    sender = email_message['From']
    
    mail.store(email_uid,'+X-GM-LABELS','('+label_to_add+')')
    # also tried without the parenthesis
    mail.store(email_uid,label_to_add)

解决方法

如果你使用 fit <- glm(value ~ group + offset(p),data = observed.data.df,family = binomial(link = 'logit')) 你需要使用 mail.uid('search'... 否则你混合了不对应的 UID 和 MSN(消息序列号),所以有时你很幸运,你的 UID 恰好是低到可以打到 MSN。