Linux mail 命令

17 Mar 2025 | 5 分钟阅读

Linux的 mail 命令是一个命令行工具,它允许我们从命令行发送电子邮件。如果您想从 shell 脚本或 Web 应用程序以编程方式生成电子邮件,则从命令行发送电子邮件会非常有用。mail 命令可以直接通过终端以及 Shell 脚本使用。但是,Linux 中还有许多其他命令可用于从命令行发送电子邮件,例如 sendmail, mutt, SSMTP, telnet 等。在本节中,我们将重点介绍 mail 命令。

在 Linux 中安装 mail 命令

mail 命令可以通过各种软件包进行安装,例如

  • gnu mailutils
  • heirloom-mailx
  • bsd-mailx

每个软件包都提供不同的功能和选项。例如,heirloom-matrix 包能够使用外部 smtp 服务器发送消息,而另外两个服务器则使用本地 smtp 服务器。

我们将安装 mailutils 包,这是从命令行发送电子邮件最流行的方式。它支持 mail 命令来发送电子邮件。

要安装 mailutils 包,请执行以下命令

上面的命令将要求输入系统密码,输入密码,然后按 ENTER 键。它将验证安装,输入 'y' 确认安装。请参考下面的输出截图

Linux mail Command

它将启动一个守护进程并要求进行 postfix 配置,请选择您想要的 postfix 选项。

Linux mail Command

安装有四种 postfix 选项。它们如下

Linux mail Command

要选择您想要的选项,请使用 方向键 滚动选项,并使用 TAB + ENTER 键进行选择。Postfix 与服务器交互以处理请求。选择 postfix 选项后,它将在您的机器上成功安装 mailutils 包。

mail 命令是如何工作的?

了解命令的工作原理很重要。mailutils 包的 mail 命令调用标准的 sendmail 二进制文件将邮件发送到指定的目的地。它连接到本地 MTA,这是一个正在运行的本地 SMTP 服务器,支持端口 25 上的邮件。

这意味着,要使用 mail 命令,我们的机器上应该运行一个包含 smtp 服务器的 postfix。Postfix 向 DNS 询问要将邮件投递到何处,DNS 回复一个邮件服务器列表并建立一个 SMTP 连接。如果缺少它,我们将收到类似 "send-mail: Cannot open mail:25" 的错误消息。

使用 mail 命令发送邮件

从命令行发送邮件是一个直接的过程。要从终端发送邮件,请执行以下命令

'-s' 选项用于指定主题。执行命令后,它会要求输入抄送地址。输入抄送 (carbon copy) 地址;您可以通过按 Enter 键将其留空。输入文本,然后按 CTRL+D 键发送。请参考下面的输出

Linux mail Command

从上面的输出可以看出,邮件将发送到指定的邮件地址。

在单行中指定邮件正文

我们可以在一行中指定主题和消息。要在单行中指定消息正文,请执行以下命令

上面的命令将邮件发送到指定的地址。请参考下面的命令

Linux mail Command

或者我们也可以指定命令如下

从文件中提取消息

我们也可以从文件中提取消息。如果您想从 shell 脚本或其他程序调用 mail 命令,这很有用。要从文件发送消息,请执行以下命令

上面的命令将发送 mailcontent.txt 文件中的消息。为了快速操作,我们也可以使用以下命令

指定 CC 和 BCC

我们还可以在命令中附加 bcc 和 cc 地址。要附加 bcc 和 cc 地址,请分别使用 -b 和 -c 选项。

要添加 bcc 地址,请执行以下命令

要添加 cc 地址,请执行以下命令

另外,我们可以在一个命令中同时指定 cc 和 bcc 地址。执行命令如下

添加多个收件人

mail 命令允许我们在不使用 cc 和 bcc 的情况下,在单个邮件中添加多个收件人。要添加多个邮件地址,只需在第一个邮件地址后面加上其他邮件地址,并用逗号 (,) 分隔。请参考下面的命令

上面的命令会将消息发送到两个地址。

指定发件人姓名和地址

我们可以添加额外的头信息,例如 'FROM' 姓名和地址,以附加到电子邮件中。要使用 mail 命令指定额外信息,请使用命令的 -a 选项。执行以下命令

上面的命令会将指定的信息发送给接收者。

添加附件

我们还可以附加文件到邮件中。-a 选项用于将文件与邮件一起附加。要添加附件,请执行以下命令

上面的命令会将指定路径中的指定文件附加到邮件中。

阅读邮件

mail 命令可用于阅读您收到的所有邮件。不过,从命令行阅读邮件并不方便,但为了知识目的,我们可以了解一下。要阅读收件箱中的邮件,请在不带任何选项的情况下执行 mail 命令,如下所示

上面的命令将显示所有收到的邮件。

mail 命令的帮助手册

要阅读 mail 命令的帮助手册,请执行 man 命令,如下所示

上面的命令将在您的终端上显示 mail 命令的手册。请参考下面的输出

Linux mail Command

按 'q' 键退出手册,按 'h' 键获取帮助。帮助选项列出了更多可用的选项。请参考下图

Linux mail Command

要退出帮助,请按 'q' 键。


下一主题Linux traceroute