如何在go中将消息标记为未读?

我想通过 IMAP 将消息标记为未读。我不知道,什么参数给了“替换”函数。我正在使用http://godoc.org/github.com/mxk/go-imap/imap


这是我的代码:


set, _ := imap.NewSeqSet("")

set.AddNum(45364) // 45364 is message's UID

_, err = imap.Wait(c.UIDStore(set, "+FLAGS", imap.Replace()))


qq_笑_17
浏览 227回答 2
2回答

三国纷争

看看RFC3501和Replace的文档,它看起来有点乱。调查 Replace 的来源,它只需要一个 [] 字符串,其中包含来自 RFC3501 的关键字。所以,例如flags := []string{}// ...._, err = imap.Wait(c.UIDStore(set, "+FLAGS", imap.Replace(flags)))// Since the "\Seen" is not in splice, the message will be unseen请注意,替换确实删除了所有标志。您必须处理(作为字符串值添加到拼接中)要保留的内容:\看过\回答\标记\已删除\草案\最近的您可以从 MessageInfo struct / Flags 获取以前的值:type MessageInfo struct {    Attrs        FieldMap  // All returned attributes    Seq          uint32    // Message sequence number    UID          uint32    // Unique identifier (optional in non-UID FETCH)    Flags        FlagSet   // Flags that are set for this message (optional)    InternalDate time.Time // Internal to the server message timestamp (optional)    Size         uint32    // Message size in bytes (optional)}

梵蒂冈之花

你可以用另一种方式来做。您可以删除标志。例子:flags := `\Seen`tmpSet, _ := imap.NewSeqSet("")tmpSet.AddNum(emailUid)_, err = imap.Wait(c.UIDStore(tmpSet, "-FLAGS", imap.NewFlagSet(flags)))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go