Mutt

為什麼 mutt 一直詢問 imap 使用者名和密碼?

  • February 17, 2016

通過呼叫取消設置 mutt 的配置變數imap_userimap_pass也許preconnect還有imap_authenticatorsaccount-hook . "unset ... "似乎是處理多個 imap 帳戶的常見做法,如果不是必需的話(請參閱管理多個 IMAP/POP 帳戶(可選)Mutt imap 多個帳戶mutt : gmail IMAP unresponsive , 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_userimap_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 ..."在其他任何地方都不存在其他呼叫。

更新,該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_userimap_pass)?

您可以直接設置使用者名和密碼,但是使用時不起作用account-hook,所以可能account-hook不起作用。

Anaccount-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}"

引用自:https://unix.stackexchange.com/questions/125008