在 Linux 终端中使用 Alpine 电子邮件客户端在 Linux 终端中使用 Alpine 电子邮件客户端在 Linux 终端中使用 Alpine 电子邮件客户端在 Linux 终端中使用 Alpine 电子邮件客户端
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Linux 终端中使用 Alpine 电子邮件客户端

配置 Alpine 以您喜欢的方式处理您的电子邮件。

电子邮件是一种重要的通信媒介,并且在可预见的未来仍将如此。在过去的 30 年里,我使用过许多不同的电子邮件客户端,而 Thunderbird 是我近年来使用最多的。它是一款出色且实用的桌面应用程序,提供了大多数人(包括我)所需的所有功能。

成为一名优秀系统管理员的要素之一就是好奇心——而我的好奇心超出了我的能力。在过去的几个月里,我对 Thunderbird 感到不满意——并不是因为它有什么特别的问题。相反,多年以后,我已经厌倦了。我很好奇是否可以找到一个电子邮件客户端来提供比 Thunderbird 更好(或至少不同)的体验,并且至少同样高效。

我决定是时候做出改变了,而不仅仅是改变图形用户界面 (GUI) 邮件客户端。 Linux 上可用的其他基于 GUI 的电子邮件客户端都没有真正吸引过我。我终于意识到我想要的是回到 Alpine,它是 Pine 的后代,Pine 是我大约 20 年前使用过的文本用户界面 (TUI) 电子邮件客户端。

这种对我的电子邮件客户端进行复古的渴望始于 2017 年,当时我为 Opensource.com 写了一篇关于 Alpine 的文章。我描述了当我离开家庭电子邮件系统时,如何使用 Alpine 来避免从 ISP 网络发送电子邮件时出现的问题。

我最近决定专门使用 Alpine 来发送电子邮件。主要吸引力在于我可以将手放在键盘上(并减少我需要接触鼠标的次数),从而提供了易用性。这也是为了让我的系统管理员渴望做一些不同的事情,并在此过程中使用优秀的文本模式界面。

入门

我已经在之前的使用中设置了 Alpine,所以只需再次开始使用它即可。

嗯,不是真的。

我之前在我的邮件服务器上设置了 Alpine,我使用安全 shell (SSH) 使用我的电子邮件帐户登录电子邮件服务器,然后启动 Alpine 来访问我的电子邮件。我在上一篇文章中解释了这一点,但最重要的是,我想绕过 ISP 以减少垃圾邮件的名义阻止邮件传输的出站端口 25。确实有点麻烦。

但现在我想在我的工作站或笔记本电脑上运行 Alpine。在与电子邮件服务器相同的主机上配置 Alpine 相对简单。在远程计算机上使用它需要更多。

安装阿尔派

在 Fedora 上安装 Alpine 很简单,因为它可以从 Fedora 存储库中获取。只需使用 DNF 作为 root 即可:

# dnf -y install alpine

此命令将安装 Alpine 以及任何尚未安装的必备软件包。 Alpine 的主要依赖项是 Sendmail、Hunspell、OpenLDAP、OpenSSL、krb5-libs、ncurses 和其他几个。就我而言,Alpine 是唯一安装的软件包。

发射高山

要启动 Alpine,请打开终端会话,在命令行中输入 alpine,然后按 Enter。

第一次启动 Alpine 时,它会显示一条消息,表明正在本地主机上创建用户目录结构。然后它会显示一条欢迎消息,如果您按 Enter,您将获得 Apache 许可证的副本。这很好,您可能应该在某个时候阅读该许可证,以便了解其条款。但现在最重要的是配置 Alpine 来获取您的电子邮件。

现在,只需按小写e即可退出问候消息。您现在应该看到 Alpine 的主菜单(我删除了输出的几个空行以节省空间):

+----------------------------------------------------+
| ALPINE 2.24 MAIN MENU Folder: INBOX No Messages    |
|                                                    |
| HELP - Get help using Alpine                       |
|                                                    |
| C COMPOSE MESSAGE - Compose and send a message     |
|                                                    |
| I MESSAGE INDEX - View messages in current folder  |
|                                                    |
| L FOLDER LIST - Select a folder to view            |
|                                                    |
| A ADDRESS BOOK - Update address book               |
|                                                    |
| S SETUP - Configure Alpine Options                 |
|                                                    |
| Q QUIT - Leave the Alpine program                  |
|                                                    |
|                                                    |
|                                                    |
|                                                    |
|                                                    |
| For Copyright information press "?"                |
|                                                    |
| ? Help P PrevCmd R RelNotes                        |
| O OTHER CMDS > [ListFldrs] N NextCmd K KBLock      |
+----------------------------------------------------+

图 1:Alpine 的主菜单

Alpine 在初次使用期间创建 ~mail 目录 localhost。配置 IMAP 服务器时,Alpine 将在以下位置创建默认的 ~/mail、~/mail/sent-mail 和 saved-messages 文件夹IMAP 服务器上的主目录。您可以更改默认值,但我建议不要这样做。使用 IMAP 时,电子邮件不会存储在本地,除非您将其复制到本地文件夹。所有电子邮件都存储在 SMTP 服务器上的收件箱中,直到保存到 IMAP 服务器上的文件夹中。 SMTP 和 IMAP 服务器可能使用相同或不同的主机。

Alpine 还假设收件箱位于电子邮件 SMTP 服务器上的 /var/spool/mail/user_name 处。本文介绍如何配置 IMAP 和 SMTP 服务器。您所在组织的电子邮件管理员(可能是您)会将您的帐户添加到 IMAP 服务器并为您提供初始密码。

Alpine 界面

Alpine 用户界面 (UI) 是文本模式、菜单驱动的 UI,也称为 TUI。这种类型的界面有时也称为强制用户界面 (CUI),例如,它不提供可在脚本中使用的命令行界面。您必须退出程序才能执行其他任务。

相比之下,mailx 程序是一种电子邮件程序,可以通过命令行或脚本与 TUI 一起使用。例如,您可以使用以下命令将 free 命令的结果直接发送到系统管理员的电子邮件帐户:

$ free | mailx -s "Free memory" sysadmin@example.com

但这样的小旅行已经够多了;还有工作要做。我们先来解释一下。

请注意,在图 1 中,界面中心主菜单中的所有可能选项以及 Alpine UI 底部的菜单项均显示为大写字母。但发出命令时可以使用大写或小写; Alpine 能够识别并响应两者。大写字母在界面中更容易查看和识别,但使用小写字母更容易输入命令和进行菜单选择。我将在本文中使用粗体大写字母来指示菜单选项(以模仿 Alpine UI)。

在主菜单上,您可以使用向上和向下箭头键突出显示不同的选项,然后按Enter将其选中。访问 Alpine 屏幕底部的菜单项(我将其称为二级菜单,因为缺乏更好的术语)的唯一方法是使用为每个菜单项指定的字母。有两组二级菜单项。您可以按O(字母,而不是数字)切换到下一组命令,然后再次按O切换回原始命令集。此击键仅更改二级菜单项。

如果看不到全部命令,请使用Page Down和Page Up键滚动浏览命令。页面底部的二级菜单通常会列出当前菜单上可用的所有命令;您还会看到类似这样的消息:

[START of Information About Setup Command]

如果您发现自己处于不想要的位置,例如创建新电子邮件、回复电子邮件或更改设置,并决定不这样做,Ctrl+C< 允许您取消当前任务。在大多数情况下,系统会要求您按C键确认是否要取消。请注意,二级菜单中的^C代表Ctrl+C。许多命令使用 Ctrl 键,因此您会在某些菜单上频繁看到 ^。

最后,要退出Alpine,您可以按Q;当它问“真的退出 Alpine 吗?”时按Y 响应即可退出。与许多命令一样,Q 并非在所有菜单中都可用。

帮助

我尝试过的所有菜单都提供帮助。您可以通过突出显示需要其信息的项目并按 ? 键获取上下文相关帮助来访问每个菜单项的详细帮助。

配置

当我开始定期使用 Alpine 时,我对发送和接收电子邮件所需的配置进行了最少的更改。随着我在 Alpine 方面获得更多经验,我更改了其他配置项,以使工作更轻松或更符合我的喜好。

首先,我将解释使 Alpine 工作所需的基本配置,然后转向使其更好地工作的配置。

如果您自己进行了一些探索(这是一件好事),请返回主菜单。要从主菜单进入 Alpine 的配置菜单,请输入 S 设置。你会看到这样的菜单:

ALPINE 2.24 SETUP Folder: INBOX No Messages 

This is the Setup screen for Alpine. Choose from the following commands: 

(E) Exit Setup: 
This puts you back at the Main Menu. 

(P) Printer: 
Allows you to set a default printer and to define custom 
print commands. 

(N) Newpassword: 
Change your password. 

(C) Config: 
Allows you to set or unset many features of Alpine. 
You may also set the values of many options with this command. 

(S) Signature: 
Enter or edit a custom signature which will 
be included with each new message you send. 
 
(A) AddressBooks: 
Define a non-default address book. 
 
(L) collectionLists: 
You may define groups of folders to help you better organize your mail. 
 
(R) Rules: 
This has up to six sub-categories: Roles, Index Colors, Filters, 
 [START of Information About Setup Command ] 
? Help E Exit Setup N Newpassword S Signature L collectionList D Directory  
O OTHER CMDS P Printer C Config A AddressBooks R Rules K Kolor 

图 2:Alpine 设置菜单

“设置”菜单将大量设置项目分组到相关类别中,希望能够使您更容易找到所需的设置项目。如果看不到全部命令,请使用Page Down和Page Up滚动浏览命令。

我将从接收电子邮件(Alpine 的全部目的)启动和运行所需的设置开始。

配置

配置部分包含 15 页(在我的大屏幕上)选项和功能配置项。这些设置可用于设置与电子邮件服务器的 SMTP 和 IMAP 连接,并定义 Alpine 工作的许多方面的方式。在这些示例中,我将使用 example.com 域名(这是我用于测试和实验的虚拟网络)。 Alpine 的配置存储在 ~/.pinerc 文件中,该文件是您第一次启动 Alpine 时创建的。

设置配置菜单的第一页包含配置 Alpine 发送和接收电子邮件所需的大部分设置:

ALPINE 2.24 SETUP CONFIGURATION Folder: INBOX No Messages

Personal Name = <No Value Set: using "Test User"> 
User Domain = <No Value Set> 
SMTP Server (for sending) = <No Value Set> 
NNTP Server (for news) = <No Value Set> 
Inbox Path = <No Value Set: using "inbox"> 
Incoming Archive Folders = <No Value Set> 
Pruned Folders = <No Value Set> 
Default Fcc (File carbon copy) = <No Value Set: using "sent-mail"> 
Default Saved Message Folder = <No Value Set: using "saved-messages"> 
Postponed Folder = <No Value Set: using "postponed-msgs"> 
Read Message Folder = <No Value Set> 
Form Letter Folder = <No Value Set> 
Trash Folder = <No Value Set: using "Trash"> 
Literal Signature = <No Value Set> 
Signature File = <No Value Set: using ".signature"> 
Feature List =
Set Feature Name
--- ----------------------
[ Composer Preferences ]
[X] Allow Changing From (default)
[ ] Alternate Compose Menu 
[ ] Alternate Role (#) Menu 
[ ] Compose Cancel Confirm Uses Yes 
[ ] Compose Rejects Unqualified Addresses 
[ ] Compose Send Offers First Filter 
[ ] Ctrl-K Cuts From Cursor 
[ ] Delete Key Maps to Ctrl-D 
[ ] Do Not Save to Deadletter on Cancel 
[Already at start of screen]
? Help E Exit Setup P Prev - PrevPage A Add Value % Print 
O OTHER CMDS C [Change Val] N Next Spc NextPage D Delete Val W WhereIs

图 3:Alpine 设置配置菜单的第一页

您可以在此处定义与电子邮件服务器通信所需的参数。要更改设置,请使用箭头键将选择栏移至所需的配置项,然后按Enter。您可以在图 3 中看到,基本配置项均未设置任何值。

Personal Name 项使用 Unix /etc/passwd 条目的 Gecos 字段为登录用户获取默认名称。这只是 Alpine 用于显示的名称,在接收或发送电子邮件方面没有作用。我通常称之为“漂亮的名字”。在这种情况下,默认名称就可以了,所以我将保持原样。

有一些配置项是您必须设置的。从用户域开始,这是当前计算机的域名。我的是一个虚拟机,用于测试和书中的示例。使用命令行获取完全限定域名 (FQDN) 和主机名。在图 4 中,您可以看到域名为 example.com:

$ hostnamectl
Static hostname: testvm1.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: 616ed83d97594a53814c35bc6c078d43
Boot ID: fd721c46a9c44c9ab8ea392cef77b661
Virtualization: oracle
Operating System: Fedora 33 (Xfce)
CPE OS Name: cpe:/o:fedoraproject:fedora:33
Kernel: Linux 5.10.23-200.fc33.x86_64
Architecture: x86-64

图4:获取主机名和域名

获得 FQDN 后,选择用户域条目并按Enter键即可看到 Alpine 屏幕底部的输入字段(如图 5 所示)。输入您的域名并按 Enter(使用您的网络的域名和服务器名称):

ALPINE 2.24 SETUP CONFIGURATION Folder: INBOX No Messages

Personal Name = <No Value Set: using "Test User"> 
User Domain = <No Value Set> 
SMTP Server (for sending) = <No Value Set> 
NNTP Server (for news) = <No Value Set> 
Inbox Path = <No Value Set: using "inbox"> 
Incoming Archive Folders = <No Value Set> 
Pruned Folders = <No Value Set> 
Default Fcc (File carbon copy) = <No Value Set: using "sent-mail"> 
Default Saved Message Folder = <No Value Set: using "saved-messages"> 
Postponed Folder = <No Value Set: using "postponed-msgs"> 
Read Message Folder = <No Value Set> 
Form Letter Folder = <No Value Set> 
Trash Folder = <No Value Set: using "Trash"> 
Literal Signature = <No Value Set> 
Signature File = <No Value Set: using ".signature"> 
Feature List =
Set Feature Name
--- ----------------------
[ Composer Preferences ]
[X] Allow Changing From (default)
[ ] Alternate Compose Menu 
[ ] Alternate Role (#) Menu 
[ ] Compose Cancel Confirm Uses Yes 
[ ] Compose Rejects Unqualified Addresses 
[ ] Compose Send Offers First Filter 
[ ] Ctrl-K Cuts From Cursor 
[ ] Delete Key Maps to Ctrl-D 
[ ] Do Not Save to Deadletter on Cancel 
Enter the text to be added : example.com 
^G Help 
^C Cancel Ret Accept 

图 5:在文本输入字段中输入域名。

所需配置

这些是发送和接收电子邮件所需的基本配置项:

  • 个人姓名

    • 你的名字
    • 这是 Alpine 用于电子邮件中“发件人”和“返回”字段的漂亮名称。
  • 用户域

      example.com:25/user=SMTP_Authentication_UserName
    • 这是您的电子邮件客户端的电子邮件域。这可能与用户域名不同。该行还包含 SMTP 端口号和用于 SMTP 身份验证的用户名。
  • SMTP服务器

    • 邮件传输协议
    • 这是出站 SMTP 电子邮件服务器的名称。它与用户域名相结合来创建电子邮件服务器的 FQDN。
  • 收件箱路径

      {IMAP_server)}Inbox
    • 这是用大括号 ({}) 括起来的 IMAP 服务器的名称和收件箱的名称。请注意,此目录位置与入站 IMAP 电子邮件不同。服务器上收件箱的通常位置是 /var/spool/mail/user_name。
  • 默认 Fcc(文件抄送)

      {IMAP_server)}mail/sent
    • 这是存储已发送邮件的邮箱(文件夹)。服务器上的默认邮件目录通常是~/mail,但是必须在此和接下来的两个条目中指定mail/,否则文件夹将放置在主目录中目录代替。
  • 默认保存的消息文件夹

      {IMAP_server)}mail/saved-messages
    • 如果您不使用 ^t 指定其他文件夹,则这是将邮件保存到文件夹时的默认文件夹。
  • 垃圾文件夹

      {IMAP_server)}mail/Trash
  • 文字签名

    • 签名字符串
    • 我不使用这个,但它是一个指定简单签名的简单地方。
  • 签名文件

      ~/MySignature.sig
    • 这指向包含您的签名文件的文件。

可选配置

以下是我为了让 Alpine 更符合我的喜好而更改的功能。它们不是让 Alpine 发送和接收电子邮件,而是让 Alpine 按照您希望的方式工作。除非另有说明,我打开了所有这些功能。在 Alpine 显示中,默认打开的功能旁边有字符串 (default)。因为它们已经开启,所以我不会描述它们。

  • 备用角色 (#) 菜单:这允许在同一客户端和服务器上使用不同电子邮件地址的多个身份。服务器必须配置为允许将多个地址发送到您的主电子邮件帐户。
  • Compose 拒绝不合格的地址:Alpine 不会接受不完全合格的地址。也就是说,它的格式必须是。
  • 启用 Sigdashes: 这使得 Alpine 能够自动在签名上方的行中添加破折号 (--)。这是描述签名开始的常用方法。
  • 防止在密码文件中查找用户:这可以防止从 passwd 文件的 Gecos 字段中查找完整的用户名。
  • 发送前进行拼写检查:虽然您可以在撰写电子邮件时随时调用拼写检查程序,但这会在您使用 ^X 击键发送电子邮件时强制执行拼写检查。
  • 在回复中包含标头:这包括您回复时邮件的标头。
  • 在回复中包含文本:这在回复中包含原始邮件的文本。
  • 底部签名:许多人喜欢在电子邮件的最底部签名。此设置更改默认值,默认值将签名放在回复的末尾和要回复的消息之前。
  • 保留原始字段:当您回复邮件时,这会保留收件人:和抄送:字段中的原始地址。如果您在回复邮件时禁用此功能,原始发件人将添加到收件人:字段,所有其他收件人将添加到抄送:字段,并且您的邮件将被添加到抄送:字段。地址将添加到发件人: 字段中。
  • 启用后台发送:这可以加快发送电子邮件时 Alpine 用户界面的响应速度。
  • 启用详细 SMTP 发布:这会在与服务器的 SMTP 对话期间生成更详细的信息。它是系统管理员确定问题的辅助工具。
  • 主题空白时发出警告:这可以防止发送没有主题的电子邮件。
  • 组合文件夹显示:这将所有文件夹集合组合到一个主显示中。否则,集合将位于单独的视图中。
  • 组合子目录显示:这将所有子目录的集合组合到一个主显示中。否则,子目录将处于单独的视图中。这在搜索子目录以附加或保存文件时非常有用。
  • 启用传入文件夹集合:这会列出与收件箱位于同一集合中的所有传入文件夹。传入文件夹可以与 procmail 等工具一起使用,将电子邮件预先分类到收件箱以外的文件夹中,并且可以更轻松地查看新电子邮件排序的文件夹。
  • 启用传入文件夹检查:这使 Alpine 能够检查传入文件夹集合中的新电子邮件。
  • 传入检查包括总数:这显示传入文件夹中的旧电子邮件和新电子邮件的数量。
  • 文件夹扩展视图:当您查看文件夹列表屏幕时,这会显示每个集合中的所有文件夹。否则,仅显示集合,并且在选择之前不会显示文件夹。
  • 单独的文件夹和目录条目:如果您的邮件目录包含使用相同名称的电子邮件文件夹和常规目录,这会导致 Alpine 单独列出它们。
  • 使用垂直文件夹列表:这会先垂直排序邮件文件夹,然后再水平排序。默认是水平的,然后是垂直的。
  • 将日期转换为本地时间:默认情况下,所有日期和时间均按其原始时区显示。这会将日期转换为当地时间显示。
  • 在标题栏中显示排序:Alpine 可以使用多个条件对邮件文件夹中的电子邮件进行排序。这会导致排序条件显示在标题栏中。
  • 启用消息查看地址链接:这会突出显示电子邮件正文中的电子邮件地址。
  • 启用消息查看附件链接:这会突出显示电子邮件正文中的 URL 链接。
  • 首选纯文本:许多电子邮件包含两个版本:纯文本和 HTML。开启此功能后,Alpine 始终显示纯文本版本。您可以使用 A 键切换到“首选”版本,通常是 HTML 版本。我通常发现纯文本更容易可视化结构并阅读电子邮件。这可能取决于发送客户端,因此我在需要时使用 A 键。
  • 通过 Y 命令启用打印: 这将使用之前的默认值 Y 打印一条消息。由于 Y 还用于确认许多命令,因此击键可能会无意中导致您打印消息。新的默认值是 % 以防止意外打印。我喜欢使用 Y 的便捷性,但它导致了一些额外的打印作业,因此我正在考虑关闭此功能。
  • 在消息之间打印换页:这会将每条消息打印在一张新纸上。
  • 自定义标头:自定义标头可以覆盖默认的发件人:和回复:标头。我将我的设置为:

    -   From: "David Both" <[david@example.com](mailto:david@both.org)>
    -   Reply-To: "David Both"
        <[david@example.com](mailto:david@both.org)>
  • 排序键:默认情况下,Alpine 按到达时间对文件夹中的邮件进行排序。我发现这有点令人困惑,因此我将其更改为日期,这可能与到达时间有很大不同。许多垃圾邮件发送者使用过去或未来的日期和时间,因此此设置可以将未来的日期和时间排序到列表的顶部(或底部,具体取决于您对正向或反向排序的偏好)。
  • 图像查看器:此功能允许您指定在显示电子邮件中附加或嵌入的图形时要使用的图像查看器。这仅在图形桌面上的终端窗口中使用 Alpine 时有效。它不适用于纯文本虚拟控制台。我总是将其设置为 =okular 因为 Okular 是我的首选查看器。
  • URL-Viewer:这会告诉 Alpine 您要使用哪种网络浏览器。我将其设置为 = /bin/firefox 但您可以使用 Chrome 或其他浏览器。请务必验证 Firefox 可执行文件的位置。

印刷

设置 Alpine 进行打印很容易。从设置页面中选择打印机菜单。这允许您设置默认打印机并定义自定义打印命令。默认值可能是attached-to-ansi。将光标向下移动到标准 UNIX 打印命令部分并突出显示打印机列表。 

Standard UNIX print command

Using this option may require setting your "PRINTER" or "LPDEST"

environment variable using the standard UNIX utilities.

Printer List: "" lpr

然后按 Enter 键将标准 Unix lpr 命令设置为默认命令。

最后的想法

这不是 Alpine 配置和使用的分步指南。相反,我试图介绍启动和运行以发送和接收电子邮件的基础知识。我还分享了一些配置更改,这些更改使我的 Alpine 体验更加实用。这些是我发现对我的体验最重要的配置项;你可能会发现其他人对你来说更重要。

我已经使用 Alpine 几个月了,对这次体验非常满意。文本界面帮助我专注于消息,而不是分散注意力的图形和动画。如果我愿意,我可以查看这些内容,但 99% 的情况下,我选择不查看。

Alpine 易于使用,并具有大量可配置的功能,以提供最佳的电子邮件客户端体验。

使用帮助功能来获取有关我在上面探索的领域和那些我没有涉及的领域的更多信息。毫无疑问,您会找到比默认设置或我更改的设置更适合您的 Alpine 配置方法。我希望这至少能让您开始按照您想要的方式设置 Alpine。

©2015-2025 艾丽卡 support@alaica.com