如何使用golang imap获取UID?

时间:2014-07-20 14:10:49

标签: go

我正在使用Go Imap软件包开发电子邮件客户端。为了同步数据我需要唯一的标识符,所以我尝试了一个小时来找到如何设置收件箱以返回UID而不是序列号。知道怎么样?我已经盲目地尝试了一些命令set, err := imap.NewSeqSet("UID set")而没有正面结果。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

这似乎有用......现在我需要找到如何获得&解码身体:/

cmd, err = c.UIDFetch(set, "RFC822.HEADER")
if err != nil {
    log.Error(err)
    return
}

// Process responses while the command is running
fmt.Println("\nMost recent messages:")
for cmd.InProgress() {
    // Wait for the next response (no timeout)
    c.Recv(-1)
    var m Msg
    // Process command data
    for _, rsp = range cmd.Data {
        header := imap.AsBytes(rsp.MessageInfo().Attrs["RFC822.HEADER"])
        UID := imap.AsNumber((rsp.MessageInfo().Attrs["UID"]))