Как управлять несколькими учетными записями imap с Mutt

Я люблю Mutt, и версия Mutt, поставляемая с Ubuntu, потрясающая (у нее даже есть исправленная версия), единственное предостережение, которое я обнаружил, это то, что я не смог управлять несколькими учетными записями imap одновременно.

В настоящее время моя установка дурака выглядит так:

#$HOME/.mutt/muttrc
=== Accounts  ====

set my_decrypt=`gpg -o $HOME/.mutt/accounts/passwd.gpg.tmp -d $HOME/.mutt/accounts/passwd.gpg`

set my_first_mail_passwd=`awk '/xxxxx@foo.com:/ {print $2}' $HOME/.mutt/accounts/passwd.gpg.tmp`

set my_second_mail_passwd=`awk '/yyyyy@bar.com:/ {print $2}' $HOME/.mutt/accounts/passwd.gpg.tmp`

set my_rm=`rm -f $HOME/.mutt/accounts/passwd.gpg.tmp`

source $HOME/.mutt/accounts/xxxxx@foo.com/xxxxx@foo.com.profile

//source $HOME/.mutt/accounts/yyyyy@bar.com/yyyyy@bar.com.profile

Это означает, что файл password.gpg расшифровывается на лету (где живут мои пароли электронной почты), использует его для установки некоторых переменных и удаления, также создается профиль по умолчанию, он выглядит следующим образом:

#$HOME/.mutt/accounts/xxxxx@foo.com/xxxxx@foo.com.profile
set folder           = "imaps://imap.foo.com"

set spoolfile        = "imaps://imap.foo.com/INBOX"

set header_cache     = "$HOME/.mutt/cache/xxxxx@foo.com.headers"

set message_cachedir = "$HOME/.mutt/cache/xxxxx@foo.com.bodies"

set imap_user        = "xxxxx@foo.com"

set imap_pass        = $my_first_mail_passwd

set smtp_url         = "smtp://xxxxx@smtp.foo.com"

set smtp_pass        = $my_first_mail_passwd

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

3 ответа

Решение

Несмотря на то, что на этом сайте есть несколько полезных руководств, я подумал, что просто покажу вам мое текущее работающее решение. Вы можете заметить, что это похоже на вышеупомянутые руководства, но с дополнениями и отличиями: я обнаружил, что можно не использовать account-hooks или же folder-hooks в некоторых случаях. Посмотрите вики Mutt для альтернативного подхода к настройке этого.

Я опубликую элементы установки, а затем выложу всю свою .muttrc так что вы можете увидеть, как все это сочетается.

Проще всего ввести настройки обеих ваших учетных записей в отдельные файлы и сохранить их в ~/.mutt папка. В качестве примера, ваши две учетные записи могут быть названы account.gmail1 а также account.gmail2, Поэтому создайте два текстовых файла с этими именами и следуйте этому шаблону ниже для содержимого; они должны быть одинаковыми, кроме user@ часть; просто замените все вхождения вашей реальной электронной почтой (например, mik123@) в обоих файлах.

set imap_user = "user@gmail.com"
set imap_pass = ""
set from = "user@gmail.com"
set realname = "user"
set hostname = gmail.com
set folder = "imaps://user@imap.gmail.com:993"
set spoolfile = "imaps://user@imap.gmail.com/INBOX"
set postponed = "imaps://user@imap.gmail.com/[Gmail]/Drafts"
set record = "imaps://user@imap.gmail.com/[Gmail]/Sent Mail"
set smtp_url = "smtp://user@smtp.gmail.com:587"
set smtp_pass = ""
  • Обратите внимание, что я оставил пароль пустым (""), что означает, что вам будет предложено это сделать, и это то, что я предпочитаю, но вы можете интегрировать собственное решение, если не хотите продолжать вводить пароль.

  • Если вы хотите, чтобы учетная запись по умолчанию загружалась при запуске, вы можете использовать в .muttrc аналогично этой строке, просто укажите свой собственный файл конфигурации.

    source "~/.mutt/account.gmail1"

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

    macro index <f4> '<sync-mailbox><enter-command>source ~/.mutt/account.gmail1<enter><change-folder>!<enter>'
    macro index <f5> '<sync-mailbox><enter-command>source ~/.mutt/account.gmail2<enter><change-folder>!<enter>'

  • Вы сможете переключаться между папками в обеих учетных записях с помощью команд пейджера, таких как

    macro index,pager ga "<change-folder>=[Gmail]/All Mail<enter>" "Go to all mail"

которые определены в вашем .muttrc; они будут работать для каждой учетной записи (см. мой .muttrc).

  • Я проверил эти конкретные настройки с дополнительными общими в моем .muttrc, так что вы можете использовать этот файл и / или сопоставить его с вашим, это ваше дело.

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

См. Хорошую статью на этом сайте о Mutt и вики Mutt для дальнейших способов настройки mutt такие как использование folder-hooks связывать настройки с различными почтовыми ящиками, что также объясняется здесь.

Вы можете использовать несколько файлов конфигурации. Например, вы можете запустить:

  • mutt -F .muttrc-yahoo на /dev/pts/1
  • mutt -F .muttrc-gmail на /dev/pts/2

Здесь также есть хорошая рецензия / описание (GitHub). Может быть немного легче следовать или нет.

Каталоги и файлы

 ~/
|── .mutt/
| Account── account.com.gmail.foo
| Account── account.com.gmail.bar
| Com── com.gmail.foo/
| Com── com.gmail.bar/
M──.muttrc 
~/.muttrc  
 # Папки с крючками
папка-ловушка 'account.com.gmail.foo' 'source ~/.mutt/account.com.gmail.foo'
папка-ловушка 'account.com.gmail.bar' 'source ~ /.mutt / account.com.gmail.bar'

# Аккаунт по умолчанию
источник ~ /.mutt / account.com.gmail.foo         

# Макросы для переключения аккаунтов
макро индекс 'source ~/.mutt/account.com.gmail.foo!'
макро индекс 'source ~ /.mutt / account.com.gmail.bar!'

# Получить ярлык почты
индекс привязки G imap-fetch-mail 
~/.mutt/account.com.gmail.foo
 set imap_user = "foo@gmail.com"                       
set imap_pass = ""                                    
set smtp_url = "smtp: //foo@smtp.gmail.com: 587 /"       
set smtp_pass = ""                                    
установить из = "foo@gmail.com"                            
set realname = "Foo"                                  
set folder = "imaps://imap.gmail.com:993"                     
set spoolfile = "+INBOX"                                      
set postponed = "+[Gmail]/ Черновики"                             
set header_cache = ~/.mutt/com.gmail.foo/cache/headers            
set message_cachedir = ~/.mutt/com.gmail.foo/cache/body         
установить сертификат_файл = ~ /.mutt / com.gmail.foo / сертификаты 
~/.mutt/account.com.gmail.bar  
 set imap_user = "bar@gmail.com"                       
set imap_pass = ""                                    
set smtp_url = "smtp://bar@smtp.gmail.com:587/"       
set smtp_pass = ""                                    
установить из = "bar@gmail.com"                            
set realname = "Bar"                                  
set folder = "imaps://imap.gmail.com:993"                     
set spoolfile = "+INBOX"                                      
set postponed = "+[Gmail]/ Черновики"                             
set header_cache = ~/.mutt/com.gmail.bar/cache/headers            
set message_cachedir = ~/.mutt/com.gmail.bar/cache/body         
установить сертификат_файл = ~ /.mutt / com.gmail.bar / сертификаты 
Другие вопросы по тегам