MUPDATETEST(1)

✨ NAME ✨

okay so bestie, meet mupdatetest β€” it's Cyrus IMAP documentation, and it's an interactive MUPDATE test program πŸ’…

Fun lil plot twist: this is actually installed as a hard linked copy of imtest(1) 🫢

What does it do? It lets you authenticate and send MUPDATE commands to the server. That's it, that's the whole vibe. 🌸

πŸ¦‹ 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

πŸ’– DESCRIPTION πŸ’–

so imtest is a utility that lets you authenticate to an IMAP server and then interactively issue commands to it, like you're texting the server directly πŸ’¬ Once you're authenticated, you can issue any IMAP command just by typing it in. no cap. It is capable of multiple SASL authentication mechanisms, and it handles encryption layers transparently β€” which is giving ✨effortless✨.

This utility is often used for testing the operation of an IMAP server, and also all the devs out there building IMAP clients find it useful 🧚 iykyk.

πŸŽ€ OPTIONS πŸŽ€

  • -t keyfile, --keyfile=keyfile β€” Enable TLS 🌈 keyfile contains the TLS public and private keys. Specify "" to negotiate a TLS encryption layer but not use TLS authentication.
  • -p port, --port=port β€” Port to connect to. If you leave it off, this defaults to imap as defined in /etc/services.
  • -m mechanism, --mechanism=mechanism β€” Force 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 β€” 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 β€” 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).
  • -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 are 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. πŸ‘€
  • -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. 😴
  • -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 🌈

(no examples here bestie β€” the original page is literally empty on this one, we're not making stuff up πŸ’€)

πŸ’œ SEE ALSO πŸ’œ

⭐ AUTHOR ⭐

The Cyrus Team, Nic Bernstein (Onlight) 🫢

1993–2026, The Cyrus Team


and that's a wrap, bestie πŸŽ€ this was MUPDATETEST(1) from the Cyrus IMAP crew, version 3.12.3, dated Jul 15, 2026 ✨ go forth and test your MUPDATE server, you absolute icon πŸ’… periodt.

πŸ“¦ where this page comes from