為什麼 mutt 一直詢問 imap 使用者名和密碼?
通過呼叫取消設置 mutt 的配置變數
imap_user
(imap_pass
也許preconnect
還有imap_authenticators
)account-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_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 ..."
在其他任何地方都不存在其他呼叫。更新,該
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)?
您可以直接設置使用者名和密碼,但是使用時不起作用
account-hook
,所以可能account-hook
不起作用。An
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}"