Мотивация пользоваться вместо обычных почтовых клиентов, таких, как Thunderbird, или, скажем, Claws Mail, консольным почтовым клиентом NeoMutt сродни мотивации пользоваться irssi вместо HexChat. Консольные приложения, как правило, намного проще своих GUI-аналогов, а значит не так сильно жрут батарею и более безопасны. Также они управляются исключительно при помощи клавиатуры, могут быть запущены на сервере в screen/tmux, и вот это все. К сожалению, конкретно NeoMutt совершенно незаслуженно пользуется репутацией программы, очень сложной в настройке. Сегодня мы убедимся, что в действительности настройка NeoMutt не сильно отличается от настройки любого другого почтового клиента.

  • Мы собираемся установить NeoMutt современный и настроим консольный клиент imap/pop3/smtp.

  • Мы собираемся использовать GNUPG для дешифрования и шифрования.

  • Мы собираемся использовать Pass для хранения пароля NeoMutt.

    Руководство NeoMutt

    GNUpg Документация

    Pass Документация

Хорошо, так что давайте запачкаем руки.

Установка

Я использую Arch Linux с yay, но вы можете использовать pacman.

$ sudo pacman -S neomutt
$ sudo pacman -S gnupg
$ sudo pacman -S pass
$ mkdir ~/.config/neomutt
$ cd ~/.config/neomutt
$ sudo updatedb
locate neomuttrc
$ cp /etc/neomuttrc ~/.config/neomutt/

Прежде чем мы начнем, убедитесь, что у вас есть готовый gnupg, это означает, что у всех ваших друзей и контактов есть открытые ключи и ваш личный ключ или OnlyKey и т.д., если у вас есть. Если вы используете wayland, sway и т.д., Я рекомендую настроить dmenu для запроса пароля.

Чтобы увидеть список плагинов и опций dmenu:

$ sudo pacman -S dmenu

Теперь давайте проверим этот ключ ID:

$ gpg -k
$ gpg -K

Это перечислит ваши открытые и секретные ключи в этом порядке.

locate colors.linux
$ cp /usr/share/doc/neomutt/samples/colors.linux ~/.config/neomutt/
locate gpg.rc
$ cp /usr/share/doc/neomutt/samples/gpg.rc ~/.config/neomutt/
locate mailcap
$ cp /etc/mailcap ~/.config/neomutt/

Конфигурация

Редактируем ~/.config/neomutt/neomuttrc

$ nano ~/.config/neomutt/neomuttrc
# We source our color theme
source ~/.config/neomutt/colors.linux
# we can source as many files as needed if you like to divide configuration pieces by file instead
# of having a long configuration file.
#source ~/.config/neomutt/sidebar


# Here we run the local password manager and get the password for imap and smtp into a mutt variable
set mailcap_path = ~/.config/neomutt/mailcap
set my_pass="`pass neomutt/webmaster`"

# Here are the general settings
set realname="webmaster"
set from="webmaster@this.site"
set mail_check=90
set timeout=15


# IMAP
set imap_user="webmaster@this.site"
set imap_pass=$my_pass
set folder=imaps://webmaster@this.site
set spoolfile="+INBOX"

set sort=reverse-date
set sort_aux=last-date-received

#sidebar
set sidebar_visible = no
set sidebar_format = "%B%* %n"
set mail_check_stats
set sidebar_new_mail_only = no
set sidebar_width = 15
set sidebar_short_path = no

# --------------------------------------------------------------------------
# Note: All color operations are of the form:
#       color OBJECT FOREGROUND BACKGROUND
# Color of the current, open, mailbox
# Note: This is a general NeoMutt option which colors all selected items.
#color indicator cyan white
# Color of the highlighted, but not open, mailbox.
color sidebar_highlight white color8
# Color of the divider separating the Sidebar from NeoMutt panels
color sidebar_divider color8 white
# Color to give mailboxes containing flagged mail
color sidebar_flagged red white
# Color to give mailboxes containing new mail
color sidebar_new green white
# Color to give mailboxes containing no new/flagged mail, etc.
color sidebar_ordinary color245 default


# SMTP
set smtp_url="smtps://webmaster@this.site:465"
set smtp_pass=$my_pass

# Source GNUPG settings to encrypt/decrypt/sign email
source ~/.config/neomutt/gpg.rc

auto_view text/html

Вы можете настроить параметры и цвета, но наиболее важными здесь являются настройки параметров imap и smtp.

ПРИМЕЧАНИЕ. Конфигурация SMTP и IMAP/POP3 может отличаться. Перейдите по ссылке выше к документации.

Мы создаем переменную, которая будет передавать пароль из зашифрованного локального менеджера паролей, который называется Pass

Настроить Pass

Если вы еще не импортировали или не создали свою пару ключей (закрытый и открытый ключи), сделайте это сейчас, если вы перемещаете свои ключи, убедитесь, что вы импортировали их. Если вы уже использовали это, игнорируйте эту часть.

$ gpg --import pgp-priv
$ gpg --import pgp-public

Теперь перечислите свои открытые ключи, и вам нужно будет получить идентификатор своего личного ключа, чтобы создать зашифрованную базу данных Pass для хранения ваших паролей.

$ gpg -k

Примером будет электронное письмо, связанное с ключом, например: webmaster@this.site

Поэтому, если вы никогда ранее не инициализировали Pass, запустите его для создания:

$ pass init webmaster@this.site

Это выше инициализирует вашу зашифрованную базу паролей.

Теперь мы должны доверять ключу, чтобы иметь возможность использовать его, поэтому сделайте это со своим идентификатором ключа, снова проигнорируйте это, если ваши ключи уже доверены.

$ gpg --edit-key webmaster@this.site

Отредактируйте главный ключ, чтобы назначить ему максимальное доверие, выбрав trust и 5:

trust
5
y
quit

И вот теперь ему доверяют.

Затем мы введем ваши учетные данные, имя или как вы хотите назвать это, вам позже понадобится это в конфигурации neomutt для получения пароля.

Это ниже предложит вам сохранить пароль 2 раза .. Сделайте так :)

$ pass insert neomutt/webmaster

Хорошо! Теперь проверьте базу данных

$ pass neomutt/webmaster

Вы должны увидеть новую запись :)

Конфигурация GPG.RC

Здесь у меня есть пример моей конфигурации, конечно, изменил мою информацию и добавил случайную строку s ключ pgp. Вы должны ввести здесь свой pgp ключ, который вы хотите использовать по умолчанию, есть другие команды, которые вы можете получить из документации для добавления diff ключей и т.д.

$ nano ~/.config/neomutt/gpg.rc
set crypt_use_gpgme=yes
set crypt_autosign=yes
set crypt_verify_sig=yes
set crypt_replysign=yes
set crypt_replyencrypt=yes
set crypt_replysignencrypted=yes
set crypt_autoencrypt = yes


set pgp_default_key="E2D7876315322785DC089BFCC1E153BC65A832DD"
set pgp_check_gpg_decrypt_status_fd
set pgp_use_gpg_agent = yes
set pgp_self_encrypt = yes

Хорошо, поэтому при каждом сеансе вам нужно будет вводить свой пароль закрытого ключа gpg, чтобы открыть «Pass» вашей базы паролей, потому что Pass спрашивает у gnupg ключ для открытия базы данных. Без вашего ключа pgp вы не сможете открыть пароль, поэтому я рекомендую использовать внешнее криптографическое устройство, например Yubikey, SoloKeys, Nitrokey, но это не нужно, но вы будете иметь свои ключи локально на вашем компьютере…

Помните, что это только очень поверхностный способ заставить вас работать вместе со всеми этими тремя инструментами, если вы хотите стать опытным пользователем.