IMTEST(1)

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

okay bestie, welcome to imtest, from the Cyrus IMAP documentation era. this is the manual for the Interactive IMAP test program, and yes she is that girl. let's get into it πŸ¦‹


✨ NAME ✨

imtest β€” Cyrus IMAP documentation. literally the Interactive IMAP test program. that's her. 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 get in, and then you just type IMAP commands and she does them. no cap. πŸ’…

once you're authenticated you can issue any IMAP command by simply typing it in. she's capable of multiple SASL authentication mechanisms and she handles encryption layers transparently β€” the way she just does that. ✨

this utility is often used for testing the operation of an IMAP server. and also, those developing IMAP clients find it useful. icon behavior honestly. πŸ‘‘


πŸ’– 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 left off this defaults to imap as defined in /etc/services.
  • -m mechanism, --mechanism=mechanism β€” Force imtest to use mechanism for authentication. If not specified, the strongest authentication mechanism supported by the server is 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 will be 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 one to specify the realm.
  • -f file, --input-filename=file β€” Pipe file into 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 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 (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. she's talking now fr fr πŸ—£οΈ
  • -z, --run-stress-test β€” Timing test.
  • -x file, --output-socket=file β€” Open the named socket for the interactive portion.
  • -X file β€” Like -x, only close all file descriptors & daemonize 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 ⭐

(the original page left this section empty bestie, so we leave it empty too β€” we do not make things up in this house πŸ’œ)


🌈 SEE ALSO 🌈


πŸŽ€ AUTHOR πŸŽ€

The Cyrus Team, Nic Bernstein (Onlight). legends, honestly. πŸ’…


1993–2026, The Cyrus Team


and that's the whole page, bestie!! 🫢 this was version 3.12.3, dated Jul 15, 2026, from the Cyrus IMAP era β€” iykyk. go test that IMAP server, you're gonna eat. periodt. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from