ImapEnvelopeThreadCommand (thread.rs)

himalaya · email, imap-protocol, email-threading, cli-command, async-runtime

Writes IMAP envelope thread view grouping via async ro-cmd handler.

use io_imap::client::ImapClient as _;
use std::{collections::HashMap, fmt, num::NonZeroU32};

use anyhow::Result;
use clap::{Parser, ValueEnum};
use io_imap::{
    rfc3501::{fetch::ImapMessageFetchOptions, select::ImapMailboxSelectOptions},
    rfc5256::thread::ImapMessageThreadOptions,
    types::{
        extensions::thread::{Thread, ThreadingAlgorithm},
        fetch::{MacroOrMessageDataItemNames, MessageDataItem, MessageDataItemName},
        sequence::SequenceSet,
    },
};
use pimalaya_cli::printer::Printer;
use schemars::JsonSchema;
use serde::{Serialize, Serializer, ser::SerializeStruct};

use crate::imap::{
    client::ImapClient,
    envelope::search::SearchCriteriaArgs,
    mailbox::arg::{MailboxNameOptionalFlag, MailboxNoSelectFlag},
    utils::decode_mime,
};

/// Thread IMAP 

... (truncated -- full source via MCP)

See the full source, get the GitHub permalink, and search 40K more like it.

Get a free API key