FAQ

How different is Himalaya CLI from aerc or Mutt?

This tool is a CLI, not a TUI. There is no main loop that blocks your terminal. Instead you run shell commands to interact with your emails.

The other difference is that Himalaya CLI tries not to reinvent the wheel by using email-lib, which contains all the logic associated to email management. Himalaya CLI does not contain any logic related to IMAP or SMTP, it focuses instead on the User Interface.

How can I debug Himalaya CLI?

The simplest way is to use --debug and --trace arguments.

The advanced way is based on environment variables:

  • RUST_LOG=<level>: determine the log level filter, can be one of off, error, warn, info, debug and trace.
  • RUST_SPANTRACE=1: enables the spantrace (a span represent periods of time in which a program was executing in a particular context).
  • RUST_BACKTRACE=1: enables the error backtrace.
  • RUST_BACKTRACE=full: enables the full error backtrace, which include source lines where the error originated from.

Logs are written to the stderr, which means that you can redirect them easily to a file:

RUST_LOG=debug himalaya 2>/tmp/himalaya.log

How the wizard discovers IMAP and SMTP configs?

All the lookup mechanisms use the email address domain as base for the lookup. It is heavily inspired from the Thunderbird Autoconfiguration protocol. For example, for the email address test@example.com, the lookup is performed as (in this order):

  1. check for autoconfig.example.com
  2. look up of example.com in the ISPDB (the Thunderbird central database)
  3. look up MX example.com in DNS, and for mx1.mail.hoster.com, look up hoster.com in the ISPDB
  4. look up SRV example.com in DNS
  5. try to guess (imap.example.com, smtp.example.com…)

How to save a copy of a sent message?

Add the following option in your configuration:

message.send.save-copy = true

This option is disabled by default, because some email providers automatically save copies of sent messages.


Feel free to send any suggestion at ~soywod/pimalaya@lists.sr.ht.