为什么Mutt不断询问imap用户名和密码?


13

解封狗的配置变量imap_userimap_pass(也许preconnectimap_authenticators通过为好)account-hook . "unset ... "调用,似乎是常见的做法,如果不是必须的,用于处理多个IMAP帐户(请参阅管理多个IMAP / POP帐户(可选)马特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_passmuttrc

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 ..."在其他任何地方均不存在其他调用。

Updatefolder-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)?


如果您仍然对回答感兴趣,那么我想看看folder-hook您的.muttrc。然后,我可以得出一些结论并提供完整的解决方案。
lord.garbage 2014年

1
@brauner,很晚很忙,很抱歉。我还没来得及尝试这个功能,因为我不需要它。我必须追溯folder-hook我当时使用的设置,我想我已经作为备份了。
Nikos Alexandris

您可以从“ mutt -d 5”发布调试文件吗?
asdmin 2015年

目前,@ asdmin的响应是DEBUG was not defined during compilation. Ignored.。找到时间后,我将重新编译并发回。
Nikos Alexandris

@kyrias thnx进行编辑
Nikos Alexandris

Answers:


3

您可以直接设置用户名和密码,但是在使用时它不起作用account-hook,因此可能account-hook无效。

一个account-hook由用于邮箱的regexp组成,以及如果邮箱与regexp匹配则应执行的命令。

由于未执行命令(set imap_userset imap_pass),因此我们可以假定d 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}"

我回来解决这个问题。您的解释很可能是正确的。希望我会尽快进行验证。谢谢。
Nikos Alexandris

如果同时set imap_userset imap_pass不执行,为什么我要求输入密码Password for UserName@mail.domain.net:呢?究竟用户ID和域设置为account-hookaccount-hooks文件?
Nikos Alexandris

我把它修好了!我想我没有${my_password}smtp_pass变量提供正确的位置。那是${password}...:-/
Nikos Alexandris

关于我的最后评论,经过多次实验性修改,看来我是错误地使用"${password}"而不是"${my_password}"。该account-hooks文件现在至少可以正常运行2个帐户。还有另外一个问题,那就是另一个问题SSL failed: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol。但这与此处提出并回答的问题没有直接关系。因此,除了“ typos”以外,最初的问题确实是regexp与所讨论的邮箱不匹配。
Nikos Alexandris
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.