如何使用IMAP_mailbox(imap-tools)为Gmail邮件添加标签
实现前提
提前在Gmail网页端创建好目标标签,进入Gmail设置→「转发和POP/IMAP」→在IMAP访问配置区,确认目标标签已设置为「在IMAP中显示」。
你可以先执行以下代码打印所有标签对应的IMAP路径,确认目标标签的正确名称:
print(mailbox.folder.list())
实现方式1:通用IMAP方案(兼容性好)
Gmail的标签在IMAP协议中等价于文件夹,将邮件复制到对应标签的文件夹即可完成标签绑定:
for message in messages: # 替换为你的目标标签对应的IMAP路径 target_label = "你的目标标签名称" # 给邮件添加标签 mailbox.copy(message.uid, target_label) # 如果需要同时移除原标签(相当于移动邮件),替换为以下代码 # mailbox.move(message.uid, target_label)
实现方式2:Gmail专属扩展方案(更灵活)
imap-tools原生支持Gmail的X-GM-LABELS扩展,可以直接对标签进行增删改操作,支持同时处理多个标签:
for message in messages: # 新增单个/多个标签 mailbox.client.gmail_labels(message.uid, add=["待处理", "工作相关"]) # 同时移除指定标签 # mailbox.client.gmail_labels(message.uid, add=["已归档"], remove=["待处理"]) # 覆盖邮件的所有原有标签 # mailbox.client.gmail_labels(message.uid, set=["个人", "已归档"])
如果需要验证标签是否添加成功,可以在遍历邮件时打印所有已绑定标签:
for message in messages: print(message.gmail_labels)
内容的提问来源于stack exchange,提问作者WJA
相关产品推荐
相关产品推荐

