如何使用 mutt 管理多个 imap 帐户

Jav*_*pez 12 imap mutt

我喜欢 mutt,Ubuntu 附带的 mutt 版本很棒(它甚至有补丁版本),到目前为止我发现的唯一警告是我无法同时管理多个 imap 帐户。

目前我的 mutt 设置如下所示:

#$HOME/.mutt/muttrc
=== Accounts  ====

set my_decrypt=`gpg -o $HOME/.mutt/accounts/passwd.gpg.tmp -d $HOME/.mutt/accounts/passwd.gpg`

set my_first_mail_passwd=`awk '/xxxxx@foo.com:/ {print $2}' $HOME/.mutt/accounts/passwd.gpg.tmp`

set my_second_mail_passwd=`awk '/yyyyy@bar.com:/ {print $2}' $HOME/.mutt/accounts/passwd.gpg.tmp`

set my_rm=`rm -f $HOME/.mutt/accounts/passwd.gpg.tmp`

source $HOME/.mutt/accounts/xxxxx@foo.com/xxxxx@foo.com.profile

//source $HOME/.mutt/accounts/yyyyy@bar.com/yyyyy@bar.com.profile
Run Code Online (Sandbox Code Playgroud)

这意味着一个 password.gpg 文件被即时解密(我的电子邮件密码所在的位置)使用它来设置一些变量并删除,还有一个默认配置文件,它看起来像这样:

#$HOME/.mutt/accounts/xxxxx@foo.com/xxxxx@foo.com.profile
set folder           = "imaps://imap.foo.com"

set spoolfile        = "imaps://imap.foo.com/INBOX"

set header_cache     = "$HOME/.mutt/cache/xxxxx@foo.com.headers"

set message_cachedir = "$HOME/.mutt/cache/xxxxx@foo.com.bodies"

set imap_user        = "xxxxx@foo.com"

set imap_pass        = $my_first_mail_passwd

set smtp_url         = "smtp://xxxxx@smtp.foo.com"

set smtp_pass        = $my_first_mail_passwd
Run Code Online (Sandbox Code Playgroud)

使用这个,我只能使用默认配置文件中配置的帐户..,我听说可以使用文件夹挂钩,但我不知道如何使用它们,我也不确定那是不是我正在寻找什么,我希望能够根据我想阅读的电子邮件来获取不同的配置文件..,欢迎任何建议方法..,我更喜欢不依赖的设置在不属于默认 Ubuntu 安装的外部程序上。

小智 14

即使有一些有用的指导在本网站这一次,我想我只是告诉你我目前工作的解决方案。您可能会注意到它与上述指南相似,但有补充和不同之处:我发现在某些情况下可以不使用account-hooks或不使用folder-hooks。请参阅Mutt wiki以获取设置此选项的替代方法。

我将发布设置的元素,然后发布我的全部内容,.muttrc以便您可以看到它们是如何组合在一起的。

在单独的文件中输入两个帐户的设置并将它们保存在~/.mutt文件夹中是最简单的方法。例如,您的两个帐户可以称为account.gmail1account.gmail2。因此,创建两个具有这些名称的文本文件,并按照下面的模板获取内容;除了user@零件外,它们应该是相同的;只需mik123@在两个文件中用您的真实电子邮件(例如)替换所有出现的那个。

set imap_user = "user@gmail.com"
set imap_pass = ""
set from = "user@gmail.com"
set realname = "user"
set hostname = gmail.com
set folder = "imaps://user@imap.gmail.com:993"
set spoolfile = "imaps://user@imap.gmail.com/INBOX"
set postponed = "imaps://user@imap.gmail.com/[Gmail]/Drafts"
set record = "imaps://user@imap.gmail.com/[Gmail]/Sent Mail"
set smtp_url = "smtp://user@smtp.gmail.com:587"
set smtp_pass = ""
Run Code Online (Sandbox Code Playgroud)
  • 请注意,我将密码留空 ( ""),这意味着系统会提示您输入密码,这正是我喜欢的方式,但如果您不想一直输入密码,则可以集成您自己的解决方案。

  • 如果您希望在启动时加载默认帐户,您可以在.muttrc与此类似的行中使用,只需指定您自己的配置文件。

    source "~/.mutt/account.gmail1"

  • 要在帐户之间实际切换,请在您.muttrc引用帐户配置的实际位置和名称中放置一个快捷方式:

    macro index <f4> '<sync-mailbox><enter-command>source ~/.mutt/account.gmail1<enter><change-folder>!<enter>'
    macro index <f5> '<sync-mailbox><enter-command>source ~/.mutt/account.gmail2<enter><change-folder>!<enter>'

  • 您将能够使用寻呼机命令在两个帐户内的文件夹之间切换,例如

    macro index,pager ga "<change-folder>=[Gmail]/All Mail<enter>" "Go to all mail"

定义在您的.muttrc; 这些仍然适用于每个帐户(见我的附件.muttrc)。

  • 我使用my 中.muttrc的其他通用设置测试了这些特定设置,因此您可以使用该文件和/或将其与您自己的文件进行整理,这取决于您。

现在只需加载mutt终端,您应该能够加载一个帐户,然后使用快捷方式切换到另一个帐户。如果您需要配置的工作示例,我.muttrc粘贴在此处

请参阅此站点上有关 Mutt 和Mutt wiki的好文章了解更多设置方法,mutt例如使用folder-hooks将设置与各种邮箱关联,此处也对此进行了说明


小智 5

您可以使用多个配置文件。例如,您可以运行:

  • mutt -F .muttrc-yahoo/dev/pts/1
  • mutt -F .muttrc-gmail/dev/pts/2