如何将邮件标记为已读,\n在IMAP(Go)上看到

如何将邮件标记为已读,\n在IMAP(Go)上看到,go,imap,Go,Imap,我正在尝试使用将邮件/邮件列表标记为“”(永久)。然而,与fetch、search和friends不同的是,imap包上似乎没有标志函数。我应该用UID发送原始命令吗?IMAP使用存储命令设置消息的标志,例如: foo UID STORE 135211 +FLAGS (\Seen) 因此,我想您应该使用or函数来设置标志。您必须将邮箱选择为可写 youImapConnection.Select(mailboxName, false) // true would be for readonly

我正在尝试使用将邮件/邮件列表标记为“”(永久)。然而,与fetch、search和friends不同的是,imap包上似乎没有标志函数。我应该用UID发送原始命令吗?

IMAP使用
存储
命令设置消息的标志,例如:

foo UID STORE 135211 +FLAGS (\Seen)

因此,我想您应该使用or函数来设置标志。

您必须将邮箱选择为可写

youImapConnection.Select(mailboxName, false) // true would be for readonly
然后简单地执行以下操作

seq, _ := imap.NewSeqSet("")
err := seq.AddNum(612) // 612 is your UID
_, err = imap.Wait(youImapConnection.UIDStore(seq, "+FLAGS", imap.NewFlagSet(`\Seen`))) // Here you tell to add the flag \Seen
最后,您必须删除:

_, err := imap.Wait(youImapConnection.Close(true)) // Here you tell to apply changes, necessary if you mark an Email as deleted
你应该是个好人:-)


不要犹豫浏览文档/源代码,它很容易理解,您可以找到您需要的所有内容。

甚至有一种类型可以同时保存多个标志。这似乎很有效。你知道怎么把它设为未读吗?我已经尝试按照RFC发送“null”,但它不起作用。作为旁注,我想知道为什么GO团队不只是添加一些枚举/常量以及所有可能的标志和属性NVM我发现了它。。。它应该是`-FLAGS`。imap规范是一堆乱七八糟的东西。imap协议是一堆乱七八糟的东西,但是您应该在源代码中或者通过阅读不同的相关RFC来找到您需要的所有信息。祝你好运:-)