LMTPTEST(1)

πŸ’– LMTPTEST πŸ’–

okay so real talk bestie, this one's from the Cyrus IMAP manual fam, and it is literally the same program as imtest(1) β€” no cap. lmtptest is actually installed as a hard link to imtest(1). 🫢

It's an interactive LMTP test program. It lets you authenticate and send LMTP 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 🌸

okay so imtest is that utility that lets you authenticate to an IMAP server and then just. talk to it. interactively. type commands at it like it's a group chat and it's the friend who actually replies. πŸ’…

Once you're authenticated you can issue any IMAP command by simply typing it in. That's it. That's the whole thing. It's capable of multiple SASL authentication mechanisms and it handles encryption layers transparently, which is lowkey iconic of it.

People use this thing all the time for testing whether an IMAP server is behaving, and honestly? if you're developing an IMAP client, this is your new bestie. πŸ¦‹


πŸŽ€ OPTIONS πŸŽ€

  • -t keyfile, --keyfile=keyfile β€” Enable TLS. keyfile contains the TLS public and private keys. If you specify "" it'll negotiate a TLS encryption layer but not use TLS authentication. fancy ✨
  • -p port, --port=port β€” 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 (main character energy tbh πŸ‘‘). 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 get 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 one is only used with SASL mechanisms that allow proxying (e.g. PLAIN). iykyk πŸ™ˆ
  • -k num, --minssf=num β€” Minimum protection layer required.
  • -l num, --maxssf=num β€” Maximum protection layer to use (0=none; 1=integrity; etc). Like, for example, if you're using the GSSAPI authentication mechanism, specifying 0 will force imtest to not use any layer at all, and specifying 1 will force 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, so don't come crying to me if it yells at you. 😭
  • -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 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 (the library generates the correct response). she's doing the math for you bestie 🧚
  • -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. not me reading every single line πŸ‘€
  • -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 πŸ”₯

bestie. there are literally no examples here. it's giving blank page. 😭 go read imtest(1), she ate.


πŸ’œ SEE ALSO πŸ’œ


🌟 AUTHOR 🌟

The Cyrus Team, Nic Bernstein (Onlight)


1993–2026, The Cyrus Team


okay that's the whole page, mwah πŸ’– this was Cyrus IMAP version 3.12.4, dated Sep 09, 2026, and it's called LMTPTEST(1) β€” slay, periodt. πŸŽ€βœ¨πŸ’…

πŸ“¦ where this page comes from