HTTPTEST(1)

πŸ’… httptest β€” Cyrus IMAP πŸ’…

okay bestie, welcome to the manual page, it's giving documentation, it's giving Cyrus IMAP, and we are going to READ it together 🫢


✨ NAME ✨

httptest β€” Cyrus IMAP documentation πŸŽ€

It's an interactive HTTP test program. and here's the tea: it's actually installed as a hard linked copy of imtest(1) 🫣 so it's the same binary wearing a different fit. slay.

It lets you authenticate and send HTTP commands to the server ✨


🌸 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

like. yes. the synopsis says imtest. because hard link. iykyk πŸ’€


πŸ¦‹ DESCRIPTION πŸ¦‹

okay 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 issue literally any IMAP command by just… typing it in. that's it. that's the whole vibe πŸ’…

It's capable of multiple SASL authentication mechanisms and handles encryption layers transparently β€” no cap, you don't have to think about it 🌈

This utility is often used for testing the operation of an IMAP server. Also, those developing IMAP clients find it useful ✨ (hi to all the client devs out there, you're doing amazing sweetie 🫢)


πŸ’– OPTIONS πŸ’–

so many flags bestie. buckle up. we're going through ALL of them, no skipping, periodt πŸ“‹

  • -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). so don't come for it when it doesn't do anything 😭
  • -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 πŸ—£οΈ (main character energy tbh)
  • -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 option bestie, that's just how it is)
  • -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 πŸŽ€

nothing here bestie. the examples section is empty. it's giving minimalism, it's giving mystery πŸ’€πŸ¦‹ we move.


⭐ SEE ALSO ⭐

go read those next, bestie, they're also iconic πŸ“šβœ¨


πŸ‘‘ AUTHOR πŸ‘‘

The Cyrus Team πŸ’œ


1993–2026, The Cyrus Team πŸŽ€


and that's the whole page, bestie!! this was 3.12.3 of the Cyrus IMAP docs, dated Jul 15, 2026 πŸ’– slay, you read the whole thing, i'm so proud of you fr fr 🫢✨

πŸ“¦ where this page comes from