Synopsis

perch mail fetch [OPTIONS]

Description

Fetch complete RFC 5322 messages selected by UID, query, or –all. The default format writes one .eml per message when –dest is a directory, or raw bytes to stdout for a single message.

mbox writes a standard mbox stream. maildir creates tmp/new/cur and preserves message flags.

Aliases: get.

Notes

  • BODY.PEEK[] is used unless –mark-seen is set.
  • Writing eml to stdout requires exactly one message.
  • –dest is a directory for eml/maildir and a file for mbox.
  • Existing files are not overwritten unless –overwrite is passed.

Options

OptionDescription
--username, -u <value>account username (env PERCH_IMAP_USER)
--password <value>account password (prefer PERCH_IMAP_PASSWORD or –password-file)
--password-file <value>read the account password from a file
--password-stdinread the account password from stdin
--timeout <value>connection timeout (default: 30s)
--config <value>configuration file (default: ~/.config/perch/perch.yaml)
--mailbox, -m <value>mailbox to fetch from (default: “INBOX”)
--query, -q <value>search expression
--uids <value>explicit UID set, for example 1,3:5,10:*
--allfetch every message in the mailbox
--limit, -n <value>maximum messages (0 means unlimited) (default: 0)
--format, -f <value>eml, mbox, or maildir (default: “eml”)
--dest, -d, -o <value>destination directory (eml/maildir) or file (mbox); default stdout
--mark-seenlet the server set \Seen (default uses BODY.PEEK)
--overwriteoverwrite an existing eml/mbox destination
--reversefetch newest first instead of oldest first
--server, -s <value>IMAP server (imaps://host, imap://host, or host[:port]); defaults from –config
--plaintextconnect to IMAP without TLS (use only on trusted networks)
--starttlsrequire STARTTLS for IMAP
--insecureskip IMAP TLS certificate verification
--ca-file <value>PEM CA bundle used to verify the IMAP server certificate
--help, -hshow help

Examples

perch mail fetch --uids 42 > message.eml

perch mail fetch -q 'from:alice' --format mbox > alice.mbox

perch mail fetch -q 'unseen' --format maildir --dest ~/Mail

perch mail fetch -q 'unseen' --dest ./messages

Environment

VariablePurpose
PERCH_IMAP_USERdefault account username
PERCH_IMAP_PASSWORDaccount password

See also