![为什么 mutt 一直要求 imap 用户名和密码?](https://linux22.com/image/53109/%E4%B8%BA%E4%BB%80%E4%B9%88%20mutt%20%E4%B8%80%E7%9B%B4%E8%A6%81%E6%B1%82%20imap%20%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%AF%86%E7%A0%81%EF%BC%9F.png)
通过取消设置 mutt 的配置变量imap_user
(imap_pass
也许preconnect
也)imap_authenticators
account-hook . "unset ... "
调用,如果不是必要的话,似乎是处理多个 imap 帐户的常见做法(请参阅管理多个 IMAP/POP 帐户(可选),Mutt imap 多帐户,mutt: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 [email protected]"
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 = '[email protected]'
set imap_user = '[email protected]'
set imap_pass ="${my_password}"
一切正常。该account_hooks
文件是第一个来源的文件,其他account-hook . "unset ..."
地方不存在其他调用。
更新,该folder-hooks
文件(我认为)如下:
#--------------------------------------------------------------------------
# Folders and hooks
#--------------------------------------------------------------------------
# folder-hook 'imaps://UserName%[email protected]: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://[email protected]@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"':
为什么,单独的文件帐户挂钩,在这种情况下没有正确提供感兴趣的变量(即imap_用户和imap_pass)?
答案1
您可以直接设置用户名和密码,但是当您使用 时它不起作用account-hook
,因此可能account-hook
不起作用。
一个account-hook
由一个正则表达式对于邮箱,以及如果邮箱匹配则应执行的命令正则表达式。
由于命令 ( set imap_user
, set imap_pass
) 未执行,我们可以假设该命令与regexp
您的邮箱不匹配。
您正在使用非常具体的“imaps://mail.domain.net:993/INBOX/”。您的邮箱的名称可能略有不同。
这是您使用的唯一邮件帐户吗mail.domain.net
?如果是,减少正则表达式to'mail.domain.net'
应该足以匹配您的邮箱。
account-hook . 'unset imap_user; unset imap_pass; unset tunnel
account-hook mail.domain.net "set [email protected]"
account-hook mail.domain.net "set imap_pass=${my_password}"