2014-07-20 104 views
2

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

回答

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"]))