LINUX.ORG.RU

Помогите настроить mutt для нескольких аккаунтов

 


2

2
cat .mutt/muttrc
set editor="vim"
auto_view text/html
set fast_reply=yes
set include=yes
set forward_quote=yes
bind index G imap-fetch-mail
set imap_check_subscribed
set mail_check=90
set imap_keepalive=300
set copy=no
set move=no

folder-hook 'user1@gmail.com' 'source ~/.mutt/user1'
folder-hook 'user2@gmail.com' 'source ~/.mutt/user2'
source ~/.mutt/user1
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.mutt/user1<enter><change-folder>!<enter>'
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.mutt/user2<enter><change-folder>!<enter>'
cat .mutt/user1
set my_user=user@mail.com
set my_pass=password1
set realname="name1"

set imap_user=$my_user
set imap_pass=$my_pass
set folder=imaps://imap.mail.com/
set spoolfile=+INBOX
set postponed=+[Gmail]/Drafts

set from=$my_user
set use_from=yes
set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
set record=+Sent
account-hook $folder "set imap_user=$my_user imap_pass=$my_pass"

И аналогичный для user2.

При запуске mutt я оказываюсь в почтовом ящике user1, если жму f3 - то в почтовом ящике user2, но по f2 уже вернуться назад не могу. Как правильно настроить mutt для двух аккаунтов? Заранее большое спасибо.

★★

У меня так, переключение работает:

# Folder hooks
folder-hook 'account.com.gmail.mk1' 'source ~/.config/mutt/mk1'
folder-hook 'account.com.gmail.mk2' 'source ~/.config/mutt/mk2'

# Default account
source ~/.config/mutt/mk1

# Macros for switching accounts
macro index <f1> '<sync-mailbox><enter-command>source ~/.config/mutt/mk1<enter><change-folder>!<enter>'
macro index <f2> '<sync-mailbox><enter-command>source ~/.config/mutt/mk2<enter><change-folder>!<enter>'
Насколько я помню важен именно такой формат в folder-hook

disarmer ★★★ ()
Последнее исправление: disarmer (всего исправлений: 1)
Ответ на: комментарий от disarmer

Я попробовал вот так:

folder-hook 'LOGIN1@gmail.com.gmail.com' 'source ~/.mutt/LOGIN1'
folder-hook 'LOGIN2@gmail.com.gmail.com' 'source ~/.mutt/LOGIN2'

source ~/.mutt/LOGIN1
macro index <f1> '<sync-mailbox><enter-command>source ~/.config/mutt/LOGIN1<enter><change-folder>!<enter>'
macro index <f2> '<sync-mailbox><enter-command>source ~/.config/mutt/LOGIN2<enter><change-folder>!<enter>'
Жопой чую, что неправильно. Не мог бы ты выложить твой, как есть, заменив лишь имя звёздочками? Или так и надо, с mk1, mk2?

Norong ★★ ()
Ответ на: комментарий от Norong

Не так, нужно именно

folder-hook 'account.com.gmail.com.LOGIN1' 'source ~/.mutt/LOGIN1'

~/.config/mutt/LOGIN1

Тут поправь директорию на ~/.mutt/, если у тебя в ней.

Если это не поможет, выложу свой. Вообще это и есть часть отвечающая за переключение, только логины поменял на mk{1,2}

disarmer ★★★ ()
Ответ на: комментарий от disarmer

Скопировал твоё, лишь заменил mk1 и mk2 на аккаунты (без @gmail.com, т.е. на тот username, который username@gmail.com).

Выглядит так:

# Folder hooks
folder-hook 'account.com.gmail.USERNAME1' 'source ~/.mutt/USERNAME1'
folder-hook 'account.com.gmail.USERNAME2' 'source ~/.mutt/USERNAME2'

# Default account
source ~/.mutt/USERNAME1

# Macros for switching accounts
macro index <f1> '<sync-mailbox><enter-command>source ~/.mutt/USERNAME1<enter><change-folder>!<enter>'
macro index <f2> '<sync-mailbox><enter-command>source ~/.mutt/USERNAME2<enter><change-folder>!<enter>'
Где все USERNAME - без @gmail.com на конце.

Содержимое .mutt/USERNAME1

set my_user=USERNAME1@gmail.com
set my_pass=PASSWORD1
set realname="NAME LASTNAME"

set imap_user=$my_user
set imap_pass=$my_pass
set folder=imaps://imap.gmail.com/
set spoolfile=+INBOX
set postponed=+[Gmail]/Drafts

set from=$my_user
set use_from=yes
set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
set record=+Sent
account-hook $folder "set imap_user=$my_user imap_pass=$my_pass"
.mutt/USERNAME2 отличается от USERNAME1 только полями имени, лога, пасса (диффом проверял).

Могу переключиться с первого акка на второй, но не назад.

Norong ★★ ()
Ответ на: комментарий от disarmer

Так, я добился желаемого:

macro index <F4> '<sync-mailbox><enter-command>source ~/.mutt/username1<enter><change-folder>!<enter>'
macro index <F5> '<sync-mailbox><enter-command>source ~/.mutt/username2<enter><change-folder>!<enter>'
 
account-hook username1@gmail.com 'set imap_user=username1@gmail.com imap_pass=password1'
account-hook username2@gmail.com 'set imap_user=username2@gmail.com imap_pass=password2'
folder-hook 'username1@gmail.com' 'source ~/.mutt/username1'
folder-hook 'username2@gmail.com' 'source ~/.mutt/username2'

source ~/.mutt/username1
Что-то я раньше мудрил, а всё банально оказалось.

Остался лишь один вопрос - во втором ящике у меня некоторые письма имеют при себе метку F (навскидку не могу предположить, что бы это значило, письма не отличаются от любых других), и при переключении со второго аккаунта на первый у них меняется одно из полей в списке с «To Получатель» на «Реальное Имя Моего Аккаунта» (конкретно это происходит при source другого конфига). Есть ли возможность это поведение вылечить? Раздражает немного.

Norong ★★ ()
Ответ на: комментарий от disarmer

Ну и ещё: Я не совсем понял всего пафоса вот этих строк:

account-hook username1@gmail.com 'set imap_user=username1@gmail.com imap_pass=password1'
account-hook username2@gmail.com 'set imap_user=username2@gmail.com imap_pass=password2'
Вроде как, лог и пасс у меня указаны в конфигах, индивидуальных для аккаунтов, а эти строки, если я правильно понял, указывают, что если используется такой акк, то использовать такие лог и пасс. Зачем?

Norong ★★ ()
Ответ на: комментарий от Norong

Эти строки не нужны, у меня их нет, а set imap_user= указан в файле с описанием ящика.

при переключении со второго аккаунта на первый у них меняется одно из полей в списке

Если я правильно понял, это поможет:

set my_name     = "user1"

disarmer ★★★ ()
Ответ на: комментарий от disarmer

А, ну, в принципе, ясно. До тех пор, пока читается конфиг того ящика, где лежат эти письма, там отображается имя получателя (ибо какой смысл показывать мне моё?). Прочитался конфиг другого ящика - и я уже не я.

Сейчас почитаю про index_format, мб чего найду прикольного.

Norong ★★ ()
Ответ на: комментарий от disarmer

Нашёл. в index_format по-умолчанию есть %L, он показывает имя автора или имя получателя (если автор - ты). Отсюда и перемены.

Вставил %n (имя автора). Вроде, нормально.

У меня сразу ещё один вопрос есть - нельзя ли как-то сделать отображение, как в Gmail (т.е. в цепочке и мои сообщения, и других людей)? А то приходится в Sent лазить, чтобы свои сообщения прочитать.

Norong ★★ ()
Ответ на: комментарий от disarmer
Display recipient instead of sender in "Sent" folder view

By default Mutt will display the sender in the index view. It is fine for most folders, but rather useless for the one were you store a copy of your sent e-mails since it will always display your name.

The "columns" of the index can be configured through the index_format variable. Its syntax is documented in the muttrc man page. The values of our concern are %t (recipient) and %F (sender).

To change the columns according to the current folder, we need to use a hook:

muttrc

folder-hook   *[sS]ent* 'set index_format="%2C | %Z [%d] %-30.30t (%-4.4c) %s"'
folder-hook ! *[sS]ent* 'set index_format="%2C | %Z [%d] %-30.30F (%-4.4c) %s"'

Пробую эти строки - получаю еггог:

Неверное предшествующее регулярное выражение

Нет ли у тебя идей, чяднт?

Norong ★★ ()
Ответ на: комментарий от disarmer

А какие у тебя настройки, чтобы отправленные письма падали в Sent?

У меня set record=+Sent, но что-то они туда попадают через раз.

Norong ★★ ()
Ответ на: комментарий от disarmer

Извини, натупил - они добавляются, но я их не находил в конце списка, ибо сообщения у меня цепочками отображаются. Нашёл их выше по списку.

Norong ★★ ()
Ответ на: комментарий от disarmer

Ясно. И ещё я тут столкнулся со странным. Вот я перешёл в другой почтовый ящик, жмакаю «c» потом "?" для списка ящиков, и я попадаю по-прежнему в корень первого ящика. Я попробовал убрать source ~/.mutt/username1 из конфига (чтобы по-умолчанию не выбирался ни один из конфигов). Запустил mutt, прыгнул на username2, потом на username1, потом выполняю опять c, ?

В итоге оказываюсь в корне username2, т.е. открывается первый ящик, где я оказался, хотя конфиги для ящиков у меня одинаковы (кроме паролей/логинов). Чзх?

Norong ★★ ()
Ответ на: комментарий от disarmer

Вернее, первый ящик, в обозреватель каталогов которого я заходил, вот так.

Norong ★★ ()
Ответ на: комментарий от disarmer

Also, если не устанавливать record=+Sent, то исходящие мессаги идут в [Gmail]/Sent Mail автоматом, и другие почтовики по умолчанию не видят эту почту, ибо не ходят в этот каталог. С андроида например, такая проблема. А если установить рекорд=сент, то вебморда Гмыла показывает дубликаты, ибо письмо в двух каталогах. Ты как нибудь решал эту проблему?

Anonymous654 ()
Ответ на: комментарий от Anonymous654

Я кажется понял, но у меня по умолчанию исходящие письма шли в ~/sent, поэтому я добавил:

set record="+[Gmail]/Отправленные"; set postponed="+[Gmail]/Черновики";

disarmer ★★★ ()

Какие у вас тут крамольные идеи и грязные хаки развиваются. Хотя оно конечно и в archwiki есть. А почему вы не используете более классическую связку offlineimap + mutt ?

anonymous ()
Ответ на: комментарий от Norong

Возможно, но у меня в gmail эти директории называются на русском, поэтому вместо Drafts и Sent Mail у меня Черновики и Отправленные: http://disarmer.ru/-VfM.gQ

disarmer ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.