SIVTEST(1)

πŸ’– SIVTEST(1) β€” the Cyrus IMAP girlies' interactive MANAGESIEVE test program πŸ’–

okay so bestie, welcome to sivtest, section 1 of the manual β€” part of the Cyrus IMAP docs. She's an interactive MANAGESIEVE test program. And plot twist 🫒 β€” she's actually installed as a hard linked copy of imtest(1). Which is why basically everything below talks about imtest, and no, that's not a typo, that's just how she lives. πŸ’…

She lets you authenticate and send MANAGESIEVE commands to the server. That's the whole gig. ✨


✨ 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 🌸

imtest is a utility that lets you authenticate to an IMAP server and then just... talk to it. Interactively. You issue commands, it does the thing. Once you're authenticated you can type in any IMAP command and off it goes. πŸ¦‹

She handles multiple SASL authentication mechanisms and deals with encryption layers transparently, like the icon she is. People use this a lot for testing whether an IMAP server is actually behaving, and if you're out here developing IMAP clients, bestie, she's genuinely useful to you too. πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • -t keyfile, --keyfile=keyfile β€” Turns on TLS. keyfile holds the TLS public and private keys. And listen β€” if you pass "" (literally empty), she'll negotiate a TLS encryption layer but not use TLS authentication. Yes, that's a real thing you can do. πŸ™ˆ
  • -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. Don't specify it and she picks the strongest authentication mechanism the server supports. If you say login, she uses the LOGIN command instead of AUTHENTICATE. slay.
  • -a userid, --authname=userid β€” The userid used for authentication; defaults to whoever you currently are. This is the userid whose password or credentials get presented to the server to be verified. πŸ’–
  • -u userid, --username=userid β€” The userid used for authorization; also defaults to the current user. This is the userid whose identity gets assumed after authentication. It's the "who am I pretending to be now" one.
⚠️ NOTE: this is only used with SASL mechanisms that allow proxying (e.g. PLAIN). So don't come crying to her if your fancy mechanism ignores it, bestie, she warned you. 😭
  • -k num, --minssf=num β€” Minimum protection layer required. That's it, that's the vibe check.
  • -l num, --maxssf=num β€” Maximum protection layer to use (0=none; 1=integrity; etc). Example time ✨: if you're using the GSSAPI authentication mechanism, specifying 0 forces imtest to not use any layer, and specifying 1 forces her to use the integrity layer. By default the maximum supported protection layer gets used.
  • -r realm, --realm=realm β€” Specify the realm to use. Some authentication mechanisms are dramatic and require you to name 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 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 makes the OTP mechanism ask for the one-time password instead of the secret pass-phrase (the library generates the correct response for you, she's got you 🫢).
  • -i, --no-initial-response β€” Don't send an initial client response for SASL mechanisms, even if the protocol supports it. Boundaries. πŸ’…
  • -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. Not me turning this on every single time πŸ‘€
  • -z, --run-stress-test β€” Timing test. Stress her out, go off. πŸ’€
  • -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. She's leaving, bye. 🌈 (No long option for this one, bestie β€” that's just how it is.)
  • -w password, --password=password β€” Password to use. If you don't supply one, she will 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 🌟

...and that's the section. It's empty. She said nothing. Silence. Not a single example in the building. 😭 Keep it moving bestie, the options above are the whole meal. πŸŽ€


πŸ¦‹ SEE ALSO πŸ¦‹


πŸ‘‘ AUTHOR πŸ‘‘

The Cyrus Team, Nic Bernstein (Onlight)


1993–2026, The Cyrus Team


and that's the whole page, bestie β€” sivtest from the Cyrus IMAP fam, version 3.12.4, dated Sep 09, 2026. ate and left no crumbs πŸ’…βœ¨

πŸ“¦ where this page comes from