imapp(8)

๐Ÿ“ฆ version 1.0.1, in epel 10, epel 9, fedora 43, fedora 44

๐Ÿฆ‹ NAME ๐Ÿฆ‹

imapp โ€” bestie, it's the IMAPv4 proxy gateway service. that's the whole vibe. ๐Ÿ’–


โœจ SYNOPSIS โœจ

imapp [-d] [-l[[@]logfile]] [-pport] [-iinternal_ip] [-eexternal_ip]
[-hdefault_ip[:port]] [-x]

๐Ÿ’… DESCRIPTION ๐Ÿ’…

okay so imapp is an IMAPv4 (IMAP4rev1) gateway service, and its entire purpose in life is letting your internal users reach external IMAP servers. that's the gig. no cap. ๐Ÿ‘‘


๐ŸŽ€ OPTIONS ๐ŸŽ€

  • -I โ€” Inetd mode. standalone service only. periodt. ๐Ÿ’…
  • -d โ€” Daemonize. detaches the service from the console and lets it run in the background, living its best main character life. ๐Ÿซถ
  • -t โ€” Be silenT. it will not log start/stop/accept error records. quiet queen behavior. ๐Ÿคซ
  • -u โ€” Never look for username authentication. nope, not doing that. ๐Ÿ™ˆ
  • -e โ€” External address. the IP address of the interface the proxy should initiate connections from. by default the system just decides which address to use according to the routing table โ€” so if you don't set this, it's not you choosing, it's the routing table choosing. โœจ
  • -niPATH โ€” (Linux only) switch to the network namespace identified by PATH before opening the listening socket. the current namespace is saved and restored immediately after binding, so outgoing connections run in the original namespace โ€” unless -ne is also given. ๐ŸŒ€
  • -nePATH โ€” (Linux only) switch to the network namespace identified by PATH after the listening socket has been bound (and after restoring from -ni if that one applied). both options accept any namespace file path (e.g. /var/run/netns/myns or /proc/PID/ns/net) and both require CAP_SYS_ADMIN. ๐Ÿ”
  • -i โ€” Internal address. the IP the proxy accepts connections to. by default it accepts connections to any interface, which โ€” real talk โ€” is usually unsafe. ๐Ÿ™ˆ unix domain sockets are a thing too: use the -iunix:/path/to/socket syntax (e.g. -iunix:/var/run/imapp.sock). on Linux, abstract sockets use the -iunix:@socketname syntax.
  • -p โ€” Port. the port the proxy listens on for incoming connections. default is 143. ๐Ÿ“ฌ
  • -h โ€” Default destination. used when the target address isn't specified by the user. the fallback bestie.
  • -x โ€” Disable STARTTLS support. STARTTLS is not announced in the CAPABILITY response and the STARTTLS command is not accepted. ๐Ÿšซ
  • -l โ€” Log. by default logging goes to stdout. if logfile is specified, logging goes to that file instead. under Unix, if @ precedes logfile, syslog is used for logging. ๐Ÿ—‚๏ธ
  • -S โ€” Increase or decrease stack size. if you're getting 3proxy crashes, something like -S8192 is worth a try. ๐Ÿ› ๏ธ

๐Ÿงš CLIENTS ๐Ÿงš

you can use literally any MUA (Mail User Agent) that has IMAPv4 support. ๐Ÿ’– set the client to use internal_ip and port as an IMAP server. the address of the real IMAP server has to be configured as part of the IMAP username โ€” the format for the username is username@server, where server is the address of the IMAP server and username is the user's login on that IMAP server. and yes, the login itself may contain an @ sign. iconic, honestly. โœจ

the supported client authentication methods are the LOGIN command, AUTHENTICATE PLAIN and AUTHENTICATE LOGIN. with the server, the proxy authenticates using the method chosen by the client if the server supports it (as advertised in the CAPABILITY response); otherwise it falls back to AUTHENTICATE LOGIN, AUTHENTICATE PLAIN or the LOGIN command, in this order of preference. ๐Ÿซถ

challenge-response authentication (CRAM-MD5, etc.) is not supported, because it requires a challenge from the server before we even know which server to connect to. like, the math doesn't math. ๐Ÿ’€

when running as a 3proxy service (not as a standalone binary), STARTTLS is supported and announced in the CAPABILITY response unless it's disabled with -x. ๐ŸŒธ after the client issues STARTTLS, the connection is handled by tlspr(8): the destination host is taken from the SNI of the client TLS handshake (or from the -h option), the proxy performs STARTTLS negotiation with the destination server, and then transparently passes TLS traffic between the client and the server. and if the destination server doesn't support STARTTLS? the TLS handshake with the client fails. ๐Ÿ˜ญ


๐Ÿ› BUGS ๐Ÿ›

report all bugs to 3proxy@3proxy.org โ€” they wanna hear it, fr fr. ๐Ÿ“ฎ


๐Ÿ‘‘ SEE ALSO ๐Ÿ‘‘

3proxy(8), ftppr(8), pop3p(8), htproxy(8), smtpp(8), socks(8), tcppm(8), tlspr(8), udppm(8), syslogd(8), https://3proxy.org/ ๐ŸŒˆ


๐Ÿ’œ AUTHORS ๐Ÿ’œ

3proxy is designed by Vladimir Dubrovin <vlad@3proxy.org> โ€” the literal icon behind all of this. ๐Ÿ‘‘


and that's the whole page, bestie!! ๐ŸŽ€ this one's from 3proxy 0.9, dated July 2026, and honestly? it ate. go set up your proxy. mwah. ๐Ÿ’…โœจ

๐Ÿ“ฆ where this page comes from