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

11

Я люблю 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 по умолчанию.

Хавьер Лопес
источник

Ответы:

14

Несмотря на то, есть некоторые полезные руководства на этом сайте , и этот , я думал , что просто показать вам мое настоящее рабочее решение. Вы можете заметить, что это похоже на вышеупомянутые руководства, но с дополнениями и отличиями: я обнаружил, что возможно не использовать 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 / muttrc conf: paste.ubuntu.com/1487277
Хавьер Лопес
«Паста, которую вы ищете, в настоящее время не существует», возможно, pastebin - не лучшее место для хранения вещей в долгосрочной перспективе. Могу ли я предложить суть вместо этого?
Интенс
Вы правы @intentss, моя конфигурация теперь также доступна по адресу: github.com/chilicuil/dotfiles/blob/master/.mutt/muttrc , так как user76204 ответил, что он отлично работает, я интегрировал gpg в решение, хотя
Хавьер Лопес
2

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

  • mutt -F .muttrc-yahoo на /dev/pts/1
  • mutt -F .muttrc-gmail на /dev/pts/2
leopoldotosi
источник
0

Там также хорошая рецензия / HOWTO здесь (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 / сертификаты
С.Д. Аллен
источник