Почему Mutt продолжает спрашивать имя пользователя и пароль для imap?

13

Переменные незаходимый Mutt в конфигурации imap_user, imap_pass(и , возможно preconnect, imap_authenticatorsа) с помощью account-hook . "unset ... "вызова, кажется, обычная практика, если не необходимости, для обработки нескольких учетных записей IMAP (см Управления нескольких учетных записей IMAP / POP (опционального) , множественный счет Mutt IMap , собачонка : gmail IMAP не отвечает , файл конфигурации, связанный с перехватом учетной записи в funtoo.org ).

В настоящее время я работаю только с одним аккаунтом через IMAP. Планы по обработке нескольких учетных записей побуждают меня следовать инструкциям, приведенным в последней из вышеупомянутых ссылок ( чей-то пример настройки mutt ). Поэтому аналогичным образом я использовал следующее:

account-hook . 'unset imap_user; unset imap_pass; unset tunnel'
account-hook 'imaps://mail.domain.net:993/INBOX/' "set imap_user=UserName@domain.net"
account-hook 'imaps://mail.domain.net:993/INBOX/' "set imap_pass=${my_password}"

Это хранится в отдельном файле (с именем account_hooks) и поставляется изнутри muttrc. По причинам, которые я не понимаю, Mutt продолжает спрашивать имя пользователя и пароль . Однако, если переменные imap_userи imap_passустановлены непосредственно в muttrc, например,

set my_password="`gpg --decrypt ~/.mutt/password.gpg`"
set imap_authenticators='login'
set imap_login = 'UserName@domain.net'
set imap_user = 'UserName@domain.net'
set imap_pass ="${my_password}"

все отлично работает account_hooksФайл является первым из источников и никакой другой account-hook . "unset ..."вызов (s) существуют (s) где - либо еще.

Обновление , folder-hooksфайл (и был, я думаю) следующим образом:

#--------------------------------------------------------------------------
# Folders and hooks
#--------------------------------------------------------------------------
# folder-hook 'imaps://UserName%domain.net@mail.domain.net:993/'
set folder = "~/.maildir"       # IMAP: local, using offlineimap -- folder="imaps://mail.domain.net:993/INBOX/"
source ~/.mutt/mailboxes        # source automatically generated mailboxes
set spoolfile = "+INBOX"        # spoolfile='imaps://mail.domain.net:993/'
set postponed = "+INBOX/Drafts"

# Sending -----------------------------------------------------------------
set smtp_url="smtp://UserName@domain.net@mail.domain.net:587/"
set smtp_pass=${my_password}
set record = "+INBOX/Sent"
set copy=yes

# Index format ----------------------------------------------------------------
folder-hook *[sS]ent* 'set sort=threads'
folder-hook *[sS]ent* 'set sort_browser=reverse-date'
folder-hook *[sS]ent* 'set sort_aux=reverse-last-date-received'
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"':

Почему отдельный файл account_hooks не правильно передает интересующие нас переменные (то есть imap_user и imap_pass )?

Никос Александрис
источник
Если вы все еще заинтересованы в ответе, я бы хотел увидеть folder-hookваши строки .muttrc. Тогда я могу сделать некоторые выводы и предложить полное решение.
lord.garbage
1
@brauner, так поздно и занят, извинения. Я не нашел времени больше экспериментировать с этим, так как мне это не нужно. Я должен проследить folder-hookнастройки, которые я использовал в то время, я думаю, у меня есть резервная копия.
Никос Александрис
Вы можете опубликовать файл отладки из 'mutt -d 5'?
asdmin
@asdmin на данный момент, ответ DEBUG was not defined during compilation. Ignored.. Как только я найду время, я перекомпилирую и отправлю обратно.
Никос Александрис
@kyrias Спасибо за правки
Никос Александрис

Ответы:

3

Вы можете установить имя пользователя и пароль напрямую, но он не работает, когда вы используете account-hook, поэтому, вероятно account-hook, не работает.

Он account-hookсостоит из регулярного выражения для почтовых ящиков и тех команд, которые должны быть выполнены, если почтовый ящик соответствует регулярному выражению .

Поскольку команды ( set imap_user, set imap_pass) не выполняются, мы можем предположить, что regexpони не соответствуют вашим почтовым ящикам.

Вы используете 'imaps: //mail.domain.net: 993 / INBOX /', что очень специфично. Вероятно, ваши почтовые ящики названы немного по-другому.

Это единственный почтовый аккаунт, который mail.domain.netвы используете? Если это так, сокращения регулярного выражения до 'mail.domain.net'должно быть достаточно, чтобы соответствовать вашим почтовым ящикам.

account-hook . 'unset imap_user; unset imap_pass; unset tunnel
account-hook mail.domain.net "set imap_user=UserName@domain.net"
account-hook mail.domain.net "set imap_pass=${my_password}"
Томас Вайнбреннер
источник
Я вернулся, чтобы решить это. Скорее всего, ваша интерпретация верна. Надеюсь, я скоро это проверю. Спасибо.
Никос Александрис
Если и то, set imap_userи другое set imap_passне выполнено, почему меня спрашивают пароль Password for UserName@mail.domain.net:? Точно идентификатор пользователя и домен, указанный account-hookв account-hooksфайле?
Никос Александрис
Я исправил это! Я думаю, что я не смог ${my_password}правильно указать smtp_passпеременную. Это было ${password}...: - /
Никос Александрис
Что касается моего последнего комментария, то после нескольких экспериментальных правок кажется, что я неправильно использовал "${password}"вместо "${my_password}". account-hooksФайл , кажется, работает , по крайней мере , 2 acounts, теперь правильно. И еще один третий, для которого он получил, застрял в другой проблеме, а именно SSL failed: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol. Но это не имеет прямого отношения к Вопросу, на который дан ответ. Таким образом, за исключением «опечаток», изначально проблема заключалась в regexpнесоответствии рассматриваемого почтового ящика (ей).
Никос Александрис