SIVTEST(1)

πŸ’– SIVTEST(1) πŸ’–

okay bestie, welcome to sivtest β€” the cyrus imap girlies' favorite little playground ✨ (also filed under the Cyrus IMAP manual, iykyk)


🌸 NAME 🌸

sivtest β€” Cyrus IMAP documentation

the interactive MANAGESIEVE test program. no cap.

fun fact that is actually very important: this is literally installed as a hard linked copy of imtest(1). same girl, different name πŸ’…

it lets you authenticate and send MANAGESIEVE commands to the server. 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. once you're authenticated you can literally just type in any IMAP command and it goes. she supports multiple SASL authentication mechanisms and handles encryption layers transparently. main character energy honestly.

this utility is often used for testing the operation of an IMAP server. and literally everyone developing IMAP clients finds it useful too β€” it's giving dev tool of the people 🫢


πŸŽ€ OPTIONS πŸŽ€

  • -t keyfile, --keyfile=keyfile β€” turn on TLS. keyfile holds the TLS public and private keys. if you pass "" you'll negotiate a TLS encryption layer but not use TLS authentication.
  • -p port, --port=port β€” which port to connect to. leave it off and it 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 the server supports gets chosen. pass login and it'll use the LOGIN command instead of AUTHENTICATE.
  • -a userid, --authname=userid β€” the userid used 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 used 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, read this one twice 😭
  • -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 forces imtest to use no layer at all, and specifying 1 forces it to use the integrity layer. by default the maximum supported protection layer gets used.
  • -r realm, --realm=realm β€” specify the realm to use. certain authentication mechanisms may require you to specify a 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 it can.
  • -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 makes the OTP mechanism ask for the one-time password instead of the secret pass-phrase (the library generates the correct response for you, slay).
  • -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. prints out more information than usual. she's chatty πŸ’¬
  • -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 also closes all file descriptors & daemonizes the process. (no long-form flag for this one, she's mysterious πŸ™ˆ)
  • -w password, --password=password β€” password to use (if you don't supply one, she'll prompt you).
  • -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 🌈

this section is empty in the original. iconic of her honestly. nothing to see here bestie, the examples are the friends we made along the way πŸ’€

⭐ SEE ALSO ⭐


πŸ‘‘ AUTHOR πŸ‘‘

The Cyrus Team, Nic Bernstein (Onlight)


1993–2026, The Cyrus Team


okay that's the whole page, you ate that πŸ“

version 3.12.3 Β· Jul 15, 2026 Β· SIVTEST(1) β€” go forth and test ur MANAGESIEVE server, bestie πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from