emersion / go-imap

📥 An IMAP library for clients and servers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

v2 STORE flags not returned

resolutecake opened this issue · comments

— SELECT the mailbox name where message is

I think the below should return the new flags. it returns nothing

in the case below UID is an existing newly appended message
the appended message had nil flags

	var storeFlags = imap.StoreFlags{
		// Op int set/add/del
		Op: imap.StoreFlagsAdd,
		// Silent bool: new flag value is not returned
		//Silent: true,
		// Flags []Flag
		Flags: []imap.Flag{imap.FlagDeleted},
	}
	var storeOptions = imap.StoreOptions{
		// UnchangedSince uint64 // requires CONDSTORE
	}
	var seqSet = imap.NumSetNum(uint32(UID))
	// returns like fetch
	var fetch = i.Client.UIDStore(seqSet, &storeFlags, &storeOptions)
	defer parl.Close(fetch, &err)
	var m, items int
	for {

		// a message affected by STORE
		var message = fetch.Next()
		if message == nil {
			break
		}
		m++
		for {

			// an item from STORE for message
			var item = message.Next()
			if item == nil {
				break
			}
			items++
			switch it := item.(type) {
			default:
				err = perrors.ErrorfPF("UNIMPLEMENTED TYPE: %T", it)
				return
			}
		}
	}
	parl.Log("messages %d items %d", m, items)

it appears STORE operation is carried out

Does #580 help?