【问题标题】:Add label to Gmail using IMAP, Python使用 IMAP、Python 向 Gmail 添加标签
【发布时间】:2021-03-03 23:08:26
【问题描述】:

我正在尝试将标签添加到 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, '+X-GM-LABELS', label_to_add)

【问题讨论】:

    标签: python gmail imap


    【解决方案1】:

    如果您使用mail.uid('search'...,则需要使用mail.uid('store', ...,否则您会混合不对应的 UID 和 MSN(消息序列号),因此有时您很幸运,并且您的 UID 恰好足够低以命中一个 MSN。

    【讨论】:

    • 谢谢!完整参数为 mail.uid('store', email_uid, '+X-GM-LABELS', '('+label_to_add+')')
    猜你喜欢
    • 2018-06-17
    • 2017-12-21
    • 2013-12-22
    • 2013-04-07
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2018-07-30
    相关资源
    最近更新 更多