有人可以帮我配置 mutt 吗?
我需要配置 mutt 以同时支持多个帐户。
目前我的个人电子邮件配置文件如下所示:
~ $ cat ~/.mutt/personal
set imap_user = «%personal_email%@gmail.com»
set imap_pass = «%personal_email_pass%»
set smtp_url = «smtps://%personal_email%@smtp.gmail.com:465/»
set smtp_pass = «%personal_email_pass%»
set from = «%personal_email%»
set realname = «%username%»
set hostname = gmail.com
set folder = «imaps://%personal_email%@imap.gmail.com:993»
set spoolfile = «imaps://%personal_email%@imap.gmail.com/INBOX»
set postponed = «imaps://%personal_email%@imap.gmail.com/[Gmail]/Drafts»
set record = «imaps://%personal_email%@imap.gmail.com/[Gmail]/Sent Mail»
当然,“~/.mutt/work”看起来是一样的,除了“%personal_email%”和“%personal_email_pass%”的值。
“~/.muttrc”看起来像这样:
~ $ cat ~/.muttrc
source «~/.mutt/personal»
macro index <f2> '<sync-mailbox><enter-command>source ~/.mutt/personal<enter><change-folder>!<enter>'
macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/work<enter><change-folder>!<enter>'
当我按 F2 或 F3 时,mutt 确实会更改帐户,但是当我尝试更改邮箱(通过“c”->“?”)时,它会打开第一个帐户的邮箱(在我的情况下为“个人”),即使当前帐户是“工作”。
为什么?我究竟做错了什么?我该如何修复它?
答案1
一些带有钩子的技巧。您可能需要三思而后行地将密码存储到.muttrc
.当你做这样不安全的事情时,至少要注意使用应用程序特定的密码,而不是你的主要 Google 帐户密码。
# Gmail account passwords and usernames
set my_gmail_user1 = "<account 1, without @gmail or anything>"
set my_gmail_user2 = "<account 2, without @gmail or anything>"
set my_gmail_pass1 = "<password, hopefully an app-specific one>"
set my_gmail_pass2 = "<password, hopefully an app-specific one>"
# Account hooks
account-hook . "unset imap_user ; unset imap_pass"
account-hook "imaps://[email protected]" "\
set imap_user = $my_gmail_user1 \
imap_pass = $my_gmail_pass1"
account-hook "imaps://[email protected]" "\
set imap_user = $my_gmail_user2 \
imap_pass = $my_gmail_pass2"
# Gmail folders
set folder = imaps://[email protected]/
mailboxes = +INBOX =[Gmail]/Drafts =[Gmail]/'Sent Mail' =[Gmail]/Spam =[Gmail]/Trash
set spoolfile = +INBOX
folder-hook imaps://[email protected]/ "\
set folder = imaps://[email protected]/ \
spoolfile = +INBOX \
postponed = +[Gmail]/Drafts \
record = +[Gmail]/'Sent Mail' \
from = 'First User Real Name <[email protected]> ' \
realname = 'First User Real Name' \
smtp_url = smtps://[email protected] \
smtp_pass = $my_gmail_pass1"
set folder = imaps://[email protected]/
mailboxes = +INBOX =[Gmail]/Drafts =[Gmail]/'Sent Mail' =[Gmail]/Spam =[Gmail]/Trash
set spoolfile = +INBOX
folder-hook imaps://[email protected]/ "\
set folder = imaps://[email protected]/ \
spoolfile = +INBOX \
postponed = +[Gmail]/Drafts \
record = +[Gmail]/'Sent Mail' \
from = 'First User Real Name <[email protected]> ' \
realname = 'First User Real Name' \
smtp_url = smtps://[email protected] \
smtp_pass = $my_gmail_pass2"
现在剩下的就是启动 mutt,然后点击y并选择您想要的帐户的文件夹。
如果您想要更安全的设置,您最喜欢的搜索引擎可以告诉您如何使用 PGP 保护 Mutt 的 IMAP/POP 密码。 Realname/from 留给读者作为练习。
答案2
我以类似的方式使用 mutt,并且还注意到,当仅输入 时,mutt 不会立即打开属于当前活动帐户(不是第一个帐户)的邮箱c
。
但是,您可以c
然后输入=
TAB
三次您将看到当前活动帐户的邮箱。再次点击TAB
甚至可以让您在不同帐户的邮箱之间切换。
到目前为止,AFAICT,在 mutt 中还没有解决您的问题“为什么 mutt - 在打字时c
- 提供打开属于第一个帐户的邮箱,而不管另一个/第二个帐户是否处于活动状态。”。
我最好的猜测是,这要么是一个故意的设计选择,要么是一个尚未有人愿意修复的错误。使用 [neo]mutt 的侧边栏也可能会减轻用户体验。