MUPDATETEST(1)

✨ MUPDATETEST ✨

okay bestie, welcome to the mupdatetest manual page β€” it lives in the Cyrus IMAP documentation set and honestly? it's giving "the cool twin who got installed by hard-linking imtest(1)". πŸ’…


πŸŽ€ NAME πŸŽ€

mupdatetest β€” Cyrus IMAP documentation

It's an interactive MUPDATE test program, bestie. fr fr.

And here's the tea: this thing is actually installed as a hard linked copy of imtest(1). So like, same body, different vibe. πŸ¦‹

What does it do tho? It lets you authenticate and send MUPDATE commands to the server. that's it, that's the whole thing. iconic.


🌸 SYNOPSIS 🌸

imtest [ -t keyfile ] [ -p port ] [ -m mechanism ]
    [ -a userid ] [ -u userid ] [ -k num ] [ -l num ]
    [ -r realm ] [ -f file ] [ -n num ] [ -s ] [ -q ]
    [ -c ] [ -i ] [ -z ] [ -v ] [ -I file ] [ -x file ]
    [ -X file ] [ -w passwd ] [ -o option=value ]
    [ -H client-ip ] hostname

(yes it's literally the imtest synopsis, because hard link besties share everything 🫢)


πŸ’– DESCRIPTION πŸ’–

So imtest is a utility that lets you authenticate to an IMAP server and then interactively issue commands to it. Once you're authenticated you can literally just type in any IMAP command. Like, that's the whole interaction model. type. send. slay. ✨

It's capable of multiple SASL authentication mechanisms and it handles encryption layers transparently β€” you don't gotta think about it, it just does the thing. πŸ’…

This utility is often used for testing the operation of an IMAP server. And also, the girlies developing IMAP clients find it useful too. πŸ‘‘


πŸ’… OPTIONS πŸ’…

one bullet per option, no skips, no cuts, we eat the whole menu:

  • -t keyfile, --keyfile=keyfile β€” Enable TLS. keyfile contains the TLS public and private keys. If you specify "" it will negotiate a TLS encryption layer but not use TLS authentication.
  • -p port, --port=port β€” the port to connect to. If you leave it off, it defaults to imap as defined in /etc/services.
  • -m mechanism, --mechanism=mechanism β€” forces imtest to use mechanism for authentication. If you don't specify one, the strongest authentication mechanism supported by the server gets chosen. Specify login to use the LOGIN command instead of AUTHENTICATE.
  • -a userid, --authname=userid β€” the userid to use for authentication; defaults to the current user. This is the userid whose password or credentials get presented to the server for verification. πŸ”
  • -u userid, --username=userid β€” the userid to use for authorization; defaults to the current user. This is the userid whose identity will be assumed after authentication.
NOTE: this is only used with SASL mechanisms that allow proxying (e.g. PLAIN). bestie do not forget this one, it's a whole different userid than -a.
  • -k num, --minssf=num β€” minimum protection layer required.
  • -l num, --maxssf=num β€” maximum protection layer to use (0=none; 1=integrity; etc). for example, if you're using the GSSAPI authentication mechanism, specifying 0 will force imtest to not use any layer, and specifying 1 will force it to use the integrity layer. By default the maximum supported protection layer will be used.
  • -r realm, --realm=realm β€” specify the realm to use. Certain authentication mechanisms may require you to specify the realm.
  • -f file, --input-filename=file β€” pipe file into the connection after authentication. πŸ“
  • -n num, --reauth-attempts=num β€” number of authentication attempts; default = 1. The client will attempt to do SSL/TLS session reuse and/or fast reauth if possible.
  • -s, --require-tls β€” enable SSL over the chosen protocol.
  • -q, --require-compression β€” enable IMAP COMPRESSion (after authentication).
  • -c, --do-challenge β€” enable challenge prompt callbacks. This will cause the OTP mechanism to ask for the one-time password instead of the secret pass-phrase (the library generates the correct response). 🧚
  • -i, --no-initial-response β€” don't send an initial client response for SASL mechanisms, even if the protocol supports it.
  • -I file, --pidfile=file β€” echo the PID of the running process into file. (This can be useful with -X.) πŸ‘€
  • -v, --verbose β€” verbose. Print out more information than usual. we love a yapper.
  • -z, --run-stress-test β€” timing test. ⏱️
  • -x file, --output-socket=file β€” open the named socket for the interactive portion.
  • -X file β€” like -x, only it closes all file descriptors & daemonizes the process. no long option for this one bestie, it's built different. πŸ’€
  • -w password, --password=password β€” password to use (if not supplied, we will prompt).
  • -o option=value, --sasl-option=option=value β€” set the SASL option to value.
  • -H client-ip β€” enable the HAProxy protocol and send the specified client IP address in a v1 header. If the address is "unknown", a v1 header with UNKNOWN protocol will be sent. If the address is "local", a v2 header with LOCAL command will be sent. 🌈

🌟 EXAMPLES 🌟

okay so… this section is empty in the original. like, no examples listed at all. not me being disappointed 😭 but hey, that's the source of truth and we respect it. no invented examples here, bestie, that's the rule. πŸ’–


πŸ‘‘ SEE ALSO πŸ‘‘

go read those too, they're the rest of the lore. πŸ¦‹


🌸 AUTHOR 🌸

The Cyrus Team, Nic Bernstein (Onlight)


1993–2026, The Cyrus Team


and that's a wrap, bestie!! this page came from Cyrus IMAP, version 3.12.4, dated Sep 09, 2026. periodt. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from