IMTEST(1)

πŸ“¦
version 3.8.8 Β· 5 versions
, in opensuse-leap 16.0

πŸ’Œ IMTEST(1) β€” the Cyrus IMAP interactive test program, bestie edition πŸŽ€

okay so welcome to imtest, from the Cyrus IMAP fam (you'll see it filed under Cyrus IMAP in the manual, and yeah, it's imtest β€” section 1, the command section, iykyk).


✨ NAME ✨

imtest β€” Cyrus IMAP documentation. It's an Interactive IMAP test program. literally what it says on the tin, and it ate πŸ’…


🌸 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 ] hostname

like yes it's a lot of flags, don't panic, we're gonna go through every single one 🫢


πŸ’– DESCRIPTION πŸ’–

so imtest is this utility that lets you authenticate to an IMAP server and then talk to it interactively β€” like you just type commands at it and it responds, main character energy honestly.

once you're authenticated you may issue any IMAP command by simply typing it in. any of them. the power πŸ’€

it's capable of multiple SASL authentication mechanisms and it handles encryption layers transparently. this utility is often used for testing the operation of an IMAP server β€” that's like its whole thing β€” and also those developing IMAP clients find it useful. so whether you're the server girlie or the client girlie, it's giving useful ✨


πŸ¦‹ 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. (that's a real move, yes, the empty string is doing something, don't skip it πŸ™ˆ)
  • -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. (the "proof it's me" one πŸ”‘)
  • -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. (the "now be this person" one πŸ‘‘)
NOTE: this is only used with SASL mechanisms that allow proxying (e.g. PLAIN, DIGEST-MD5). so don't come for it if your mechanism doesn't proxy, bestie 😭
  • -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 KERBEROS_V4 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. highkey love a numbered scale πŸ“
  • -r realm, --realm=realm β€” Specify the realm to use. Certain authentication mechanisms (e.g. DIGEST-MD5) 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 (e.g. DIGEST-MD5), if possible. reusing sessions is so eco-friendly of it 🌈
  • -s, --require-tls β€” Enable SSL over chosen protocol.
  • -q, --require-compression β€” Enable IMAP COMPRESSion (after authentication). squeeze it πŸ’œ
  • -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). so the library does the math and you just type the OTP, iconique ✨
  • -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 chatty and we love that πŸ—£οΈ
  • -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. (no long form for this one, it's mysterious like that πŸ’…)
  • -w password, --password=password β€” Password to use (if not supplied, we will prompt). ngl the prompt is the safer vibe, but you do you πŸ™ˆ
  • -o option=value, --sasl-option=option=value β€” Set the SASL option to value.

⭐ EXAMPLES ⭐

okay so the EXAMPLES section of the original is… empty. like literally nothing in it. no example commands, no demo, nothing β€” she left the group chat on read πŸ’€ so there's nothing to show you here, fr fr. go forth and construct your own, you got this 🫢


πŸ”₯ SEE ALSO πŸ”₯


πŸ‘‘ AUTHOR πŸ‘‘

The Cyrus Team, Nic Bernstein (Onlight). legends, honestly.


1993–2026, The Cyrus Team


that's the whole page bestie, every flag accounted for, nothing skipped, periodt πŸ’…

and like a little sign-off before you close the tab: this is version 3.8.8, dated Sep 09, 2026 β€” so yeah, fresh, current, no cap. now go authenticate at that IMAP server and slay πŸŒΈπŸ¦‹βœ¨

πŸ“¦ where this page comes from