如何在 Linux 上通过 gmail 帐户安装、配置和使用 mutt如何在 Linux 上通过 gmail 帐户安装、配置和使用 mutt如何在 Linux 上通过 gmail 帐户安装、配置和使用 mutt如何在 Linux 上通过 gmail 帐户安装、配置和使用 mutt
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在 Linux 上通过 gmail 帐户安装、配置和使用 mutt

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Thunderbird 或 Evolution 等电子邮件阅读器程序很棒,但有时它们会让人感到臃肿。如果您发现自己主要通过 CLI 工作,您可能会发现学习如何安装和配置 Mutt(命令行电子邮件客户端)很有用:这就是我们在本教程中要做的事情。

在本教程中您将学习:

  • 如何安装穆特

  • 如何配置 Mutt 以与 Gmail 帐户一起使用

  • 如何将敏感信息存储在加密文件中并从 Mutt 主配置中获取该信息

  • 如何设置一些宏以轻松在邮箱目录之间切换

如何在 Linux 上通过 gmail 帐户安装、配置和使用 mutt

使用的软件要求和约定

安装

默认情况下,所有主要 Linux 发行版的官方存储库中都提供 Mutt,因此我们可以使用我们最喜欢的包管理器轻松安装它。在 Fedora 系列发行版上,我们可以使用 dnf:

$ sudo dnf install mutt

在 Debian 及其衍生版本上,我们可以使用 apt:

$ sudo apt install mutt

Mutt 也可以在 Archlinux extra 存储库中找到。要安装它,我们可以使用 pacman:

$ sudo pacman -S mutt

安装后,我们可以继续并配置应用程序。在本教程中,我们将对其进行调整以使其与 Gmail 帐户一起使用。

基本配置

我们可以选择多种路径来创建 Mutt 配置文件,但最常见的是 ~/.muttrc 和 ~/.config/mutt/muttrc;在本教程中我们将使用前者。以下是我们可能想要在其中使用的一些指令:

set ssl_force_tls = yes
set abort_nosubject = no
set mail_check = 60
set timeout = 10
set sort = "reverse-date-received"
set signature = "~/.mutt/signature"
set copy = no

让我们花一些时间来解释一下我们上面设置的变量的含义是什么,以及它们如何改变 Mutt 的行为。

强制 tls 连接

我们安装的 Mutt 版本应该编译为支持 tls:这是启用与远程服务器的加密通信所必需的。为了验证它,我们可以启动以下命令:

$ mutt -v | grep tls

作为上述命令的结果,我们应该在配置选项中看到 --with-gnutls 突出显示为匹配项。如果 mutt 配置了此选项,我们可以使用将 ssl_force_tls 设置为“yes”来使 Mutt 要求与远程服务器的所有连接都进行加密。即使与那些未正式支持加密的服务器通信时,Mutt 也会尝试使用加密,如果不成功,则会中止连接。

如果消息不包含主题则中止

通过 abort_nosubject 我们可以设置 Mutt 在撰写消息但在主题提示中未给出主题时的行为方式。该选项的默认值为ask-yes,这意味着将被要求确认我们是否确实要发送消息,默认使用“yes”选项。在本例中,我们使用 no 作为值,因此无需确认即可发送没有主题的消息。

检查新电子邮件

每次从键盘收到输入时,Mutt 都会更新所有目录的状态。我们通常希望即使在闲置时也能收到新电子邮件的通知,而无需按键。控制此行为的变量是timeout。它采用以秒为单位的值,这是等待用户输入的最长时间。如果在指定的时间内没有收到用户输入,则更新操作无论如何都会发生。该变量的默认值为 600 秒,因此如果没有给出输入,我们将每 10 分钟收到更新一次。默认值太高,我们使用10。

正如我们所说,每次收到用户输入时,mutt 都会查找更新;在高键盘活动情况下,这会导致过多的访问操作,因此我们无论如何都要限制此频率。为了完成该任务,我们可以使用 mail_check 变量。与超时一样,该变量接受一个数值,该数值被解释为两次扫描之间的最短时间(以秒为单位)。该变量的默认值为 5,因此即使经常按下按键,mutt 也会每隔 5 秒搜索一次新邮件。我们希望增加此变量的值,特别是在使用多个邮箱时,以避免可能的速度下降:60 应该是一个合理的值。

在索引页面中设置电子邮件排序顺序

默认情况下,“索引”菜单(显示邮件列表)中的电子邮件按日期升序排序,因此较新的电子邮件将显示在底部。要更改电子邮件的排序方式,我们可以使用并设置 sort_order 变量的值。在本例中,我们使用了 reverse-data-received 以使较新的电子邮件显示在列表顶部。其他参数可以用作排序因素,例如主题和大小。

将签名附加到外发电子邮件

如果我们想在发出的电子邮件中附加特定的签名,我们可以设置并使用 signature 变量。使用此变量,我们指定包含签名的文件的路径。如果文件名以 |(管道)结尾,则它被解释为 shell 命令,其输出应用作签名。在本例中,我们仅使用现有文件的路径:~/.mutt/signature。

保存外发消息的副本

默认情况下,在 Mutt 中,copy 变量设置为“yes”,因此传出消息的副本将保存在通过 record 变量指定的文件中供以后参考,该文件默认情况下,是~/sent。由于我们将 Mutt 配置为使用内置此功能的 gmail(外发电子邮件存储在远程“[Gmail]/Sent Mail”文件夹中),因此我们希望将 copy 设置为 false,否则,发送的电子邮件也会保存在本地,即我们在上面看到的位置($record)。

配置 Mutt 以使用 Gmail

到目前为止,我们看到并设置了一些基本且重要的选项。现在我们将了解如何配置 Mutt 以使用 Gmail 帐户。

为 Mutt 生成应用程序特定密码

如果我们使用谷歌双因素身份验证,为了能够从 Mutt 访问我们的 gmail 帐户,我们需要生成应用程序特定密码,因为谷歌要求不使用该密码的应用程序使用它使用Oauth2作为身份验证方法。要生成应用程序特定密码,只需导航到此地址,对自己进行身份验证,然后按照说明生成密码:我们将在配置中使用它。

Gmail 帐户配置

为了将 Mutt 与 gmail 结合使用,我们要设置的选项如下(我们使用虚拟地址):

set from = "foo.bar@gmail.com"
set realname = "Foo Bar"

# Imap settings
set imap_user = "foo.bar@gmail.com"
set imap_pass = "<mutt-app-specific-password>"

# Smtp settings
set smtp_url = "smtps://foo.bar@smtp.gmail.com"
set smtp_pass = "<mutt-app-specific-password>"

# Remote gmail folders
set folder = "imaps://imap.gmail.com/"
set spoolfile = "+INBOX"
set postponed = "+[Gmail]/Drafts"
set record = "+[Gmail]/Sent Mail"
set trash = "+[Gmail]/Trash"

让我们看一下上面定义的变量。首先,我们有 from 和 realname:通过它们,我们分别指定“From:”标头参数的值和“真实姓名”(您的第一个姓名)和姓氏)将在我们发送的电子邮件中使用。

我们上面做的下一件事是指定 imap_user 和 imap_pass 变量。前者实际上是您的地址,与我们用于 from 的地址相同;我们分配给后者的值是我们之前为帐户生成的应用程序特定密码。

然后,我们继续设置 smtp_url 和 smtp_pass 使用的值。第一个定义了发送邮件的 URL,对于 gmail,它是 smtp://@smtp.gmail.com。 smtp_pass 变量的值必须再次是生成的应用程序特定密码。

最后我们定义了一些 Gmail 文件夹:

  • folder:我们邮箱的位置,对于gmail来说是imaps://imap.gmail.com;

  • spoolfile:邮箱内电子邮件到达的文件夹;

  • postponed:用于存储推迟邮件(草稿)的文件夹;

  • record:gmail存储发送消息的目录;

  • trash:存储删除邮件的目录,而不是直接清除它们。

正如我们之前所说,gmail 自动将发送的邮件存储在专用文件夹中;在这里,我们分配了 record 目录 (+[Gmail]/Sent Mail) 的值,以便稍后能够在宏中引用它,而无需对路径进行硬编码 (gmail不是唯一的邮箱提供商)。

我们还定义了垃圾箱:它是关闭 Mutt 或同步其状态时将移动标记为删除的邮件的目录,而不是直接清除:这使我们有机会检索意外删除的邮件。 Mutt 的最新版本默认包含此功能;要在旧版本中获得它,应该应用所谓的“垃圾补丁”,即使它也可以通过宏来实现。

保护敏感帐户信息的安全

此时您应该提出一个问题:将我们为 Mutt 生成的应用程序特定密码之类的敏感信息放入普通配置文件中不是很危险吗?当然如此!这是绝对不应该做的事情!另一方面,每次我们想要连接到邮箱时都必须提供密码,这真的非常非常乏味。这个问题的解决方案是将我们的gmail帐户信息存储在一个单独的文件中,我们将使用gpg进行加密;然后,该文件将从主 mutt 配置文件中在内存中获取并解密。

下面是如何执行此操作的示例。将我们在上一节中设置的所有 gmail 信息移动到名为 ~/.mutt/gmail 的文件中,并使用 gpg 对其进行加密,运行以下命令:

$ gpg --recipient <recipientname> --encrypt ~/.mutt/gmail

上面的命令将生成一个新的加密文件~/.mutt/gmail.gpg。您现在可以删除原始的纯文本文本。要从主 Mutt 配置中获取加密文件,我们所要做的就是将此行放在 ~/.muttrc 配置文件的开头:

# Source default account configuration
source "gpg2 -dq ~/.mutt/gmail.gpg |"

注意 traling 管道:这对于让 Mutt 使用命令的输出非常重要。如果您使用“pass”密码管理器,则无需手动加密文件,而是为其创建一个条目,该条目将存储在密码存储中。想知道更多?我们在如何使用通行证密码管理器文章组织您的密码中讨论了通行证。

定义宏

Mutt 让我们定义一些可用于各种目的的“宏”,例如建立在文件夹之间切换的快捷方式。以下是一些我们可以放入 ~/.muttrc 文件中的有用内容。他们的目的是不言自明的:

macro index gd "<change-folder>$postponed<enter>" "go to drafts"
macro index gs "<change-folder>$record<enter>" "go to sent"
macro index gi "<change-folder>$spoolfile<Enter>" "go to inbox"
macro index gt "<change-folder>$trash<enter>" "go to trash""

结论

在本文中,我们学习了如何在一些主要 Linux 发行版上安装和配置 Mutt(一个命令行邮件客户端)。我们学习了如何设置一些最重要的选项,如何配置 Mutt 以便将其与 gmail 帐户一起使用,以及如何使用 gpg 将敏感信息存储在单独的加密文件中,该文件源自 Mutt 主配置文件。我们还创建了一些宏以便快速切换目录。现在您可以享受从终端阅读电子邮件的乐趣了!

©2015-2025 Norria support@alaica.com