第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Golang IMAP:在兩個(gè)不同的文件夾中移動(dòng)郵件導(dǎo)致“指定的消息集無效”

Golang IMAP:在兩個(gè)不同的文件夾中移動(dòng)郵件導(dǎo)致“指定的消息集無效”

Go
LEATH 2022-12-19 18:15:58
用例:我們有一個(gè)郵箱,我們可以在其中接收來自客戶的郵件。在進(jìn)一步處理之前,我必須檢查它們是否符合協(xié)議(主題必須匹配正則表達(dá)式,每封郵件只有一個(gè)附件等)我有以下申請(qǐng):import (    "fmt"    "imaptest/src/db"    "io"    "log"    "path/filepath"    "strings"    "github.com/emersion/go-imap"    "github.com/emersion/go-imap/client"    "github.com/emersion/go-message"    "github.com/iglin/go-config")(...)//Channel for the messagesmessages := make(chan *imap.Message, 10)//Channel for retrieve if an error appeareddone := make(chan error, 1)go func() {  seqset := new(imap.SeqSet)  seqset.AddRange(1, mbox.Messages)  //Fetch the messages and push them into the channel  done <- c.Fetch(seqset, []imap.FetchItem{imap.FetchEnvelope, imap.FetchRFC822}, messages)}()//SeqSet for invalid messagesseqsetErrorMessages := new(imap.SeqSet)//SeqSet for valid messagesseqsetValidMessages := new(imap.SeqSet)for msg := range messages {  //Different checks like are there attachments  //Matches the subject with a specific regex  if isMessageValid(msg) {    //Message is valid    seqsetValidMessages.AddNum(msg.SeqNum)  } else {    //Message is invalid    seqsetErrorMessages.AddNum(msg.SeqNum)  }}//Check if there was an error when fetching the messagesif err := <-done; err != nil {  log.Fatal(err)}//Move all invalid messages to errorif !seqsetErrorMessages.Empty() {  if err := c.Move(seqsetErrorMessages, FOLDER_ERROR); err != nil {    log.Fatalf("Error on move to %s: %v", FOLDER_ERROR, err)  }}//Move all valid messages to toExportif !seqsetValidMessages.Empty() {  if err := c.Move(seqsetValidMessages, FOLDER_OUT); err != nil {    log.Fatalf("Error on move to %s: %v", FOLDER_OUT, err)  }}FOLDER_OUT 和 FOLDER_ERROR 是此郵箱中現(xiàn)有文件夾的常量字符串。在源文件夾的所有郵件都有效(或無效)的情況下,一切都很好,所有郵件都被移動(dòng)了。但是如果我遇到同時(shí)存在有效郵件和無效郵件的情況,我會(huì)收到以下錯(cuò)誤:移動(dòng)到錯(cuò)誤時(shí)出錯(cuò):指定的消息集無效。我還嘗試使用“msg.Uid”和“c.UidMove()”代替“msg.Seqnum”和“c.Move()”,但這會(huì)導(dǎo)致相同的結(jié)果。這怎么能解決?
查看完整描述

1 回答

?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用 UID 是此處的正確答案,但請(qǐng)確保您有 UID?!?,4,9”作為 MSN 集和 UID 集均有效,但兩者不可互換。您不能從服務(wù)器請(qǐng)求 MSN 集,然后將其與 UID 命令一起使用。

如果郵箱中恰好有兩封郵件,并且您想將其中第一封移至 FOLDER_ERROR,將第二封移至 FOLDER_OUT,那么您看到的問題很容易解釋。您發(fā)送一條命令“將郵箱中的第一條消息移至 FOLDER_ERROR”,服務(wù)器會(huì)執(zhí)行此操作。然后你發(fā)送“將郵箱中的第二條消息移至 FOLDER_OUT”,服務(wù)器告訴你“此郵箱中只有一條消息,沒有我可以移動(dòng)的第二條消息”。

使用 UID 可以解決這個(gè)問題,因?yàn)樗鼈兪欠€(wěn)定的。無論您移動(dòng)了哪些其他消息,消息都會(huì)保留其 UID。


查看完整回答
反對(duì) 回復(fù) 2022-12-19
  • 1 回答
  • 0 關(guān)注
  • 229 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)