📅  最后修改于: 2020-12-09 05:37:28             🧑  作者: Mango
Linux邮件命令是一个命令行实用程序,它使我们可以从命令行发送电子邮件。如果我们要从外壳脚本或Web应用程序以编程方式生成电子邮件,那么从命令行发送电子邮件将非常有用。 mail命令和Shell脚本均可直接由终端使用。但是,Linux中还有许多其他命令可用于从命令行发送电子邮件,例如sendmail,mutt,SSMTP,telnet等。在本节中,我们将重点介绍mail命令。
mail命令可以通过各种软件包来安装,例如:
每个软件包都具有不同的功能和选项。例如, heirloom-matrix程序包能够使用外部smtp服务器发送消息,而其余两个服务器使用本地smtp服务器。
我们将安装mailutils软件包,这是从命令行发送电子邮件的最流行的方法。它支持mail命令发送电子邮件。
要安装mailutils软件包,请执行以下命令:
sudo apt install mailutils
上面的命令将要求输入系统密码,键入密码,然后按Enter键。它将验证安装,键入“ y”以确认安装。考虑下面的输出快照:
它将启动一个守护进程,并要求配置postfix,然后选择所需的postfix选项。
有四个postfix选项可用于安装。它们如下:
要选择所需的选项,请使用箭头键滚动该选项,然后使用TAB + ENTER键选择它。 Postfix与服务器交互以处理请求。选择postfix选项后,它将成功在您的计算机上安装mailutils软件包。
重要的是要知道命令的工作方式。 mailutils软件包的mail命令调用标准sendmail二进制文件,以将邮件发送到指定的目的地。它连接到本地MTA,后者是在本地运行的SMTP服务器,支持端口25上的邮件。
这意味着包含smtp服务器的后缀应该在我们的计算机上运行,才能使用mail命令。后缀询问DNS(将邮件传递到的目的地),DNS答复邮件服务器列表并创建SMTP连接。如果丢失,我们将收到错误消息,例如“ send-mail:Cannot open mail:25 ”。
从命令行发送邮件是一个简单的过程。要从终端发送邮件,请执行以下命令:
mail -s "Subject"
“ -s”选项用于指定主题。执行命令后,它将要求提供抄送地址。输入抄送(抄送)地址;您可以按Enter键将其留空。键入文本,然后按CTRL + D键发送它。考虑以下输出:
从上面的输出中,邮件将被发送到指定的邮件地址。
我们可以在一行中指定主题和消息。要在一行中指定消息正文,请执行以下命令:
mail -s "subject" <<< 'Message'
上面的命令会将邮件发送到指定的地址。考虑以下命令:
或者我们也可以指定以下命令:
echo "Message body" | mail -s "Subject" aFrom:Dwivedi\ hr@javatpoint.com
我们还可以从文件中获取消息。如果我们想从shell脚本或其他程序中调用mail命令,这将很有用。要从文件发送消息,请执行以下命令:
mail -s "Hello World" user@yourmaildomain.com < /home/mail/mailcontent.txt
上面的命令将从文件mailcontent.txt发送消息。为了快速起见,我们还可以使用以下命令:
$ echo "Message body" | mail -s "Subject"
我们还可以在命令中附加密件抄送和抄送地址。要附加密件抄送和抄送地址,请分别使用-b和-c选项。
要添加密件抄送地址,请执行以下命令:
mail -s "Hello World" -b userto< bcc address>
要添加抄送地址,请执行以下命令:
mail -s "Hello World" -c userto< cc address>
同样,我们可以在一个命令中同时指定cc和bcc地址。执行以下命令:
mail -s "Hello World" -b userto< bcc address> -c userto
mail命令使我们可以在单个邮件中添加多个收件人,而cc和bcc除外。要添加多个邮件地址,只需将其他邮件地址放在第一个邮件地址之后,然后是逗号。考虑以下命令:
mail -s "Hello World" ,
上面的命令会将邮件传递到两个地址。
我们可以添加附加的标题信息,例如“ FROM”的名称和地址,以附加在电子邮件中。要通过mail命令指定其他信息,请在命令中使用-a选项。执行以下命令:
$ echo "Message body" | mail -s "Subject" -aFrom:Sender_name\ recipient address
上面的命令将指定的信息传递给接收者。
我们还可以在邮件中附加文件。 -a选项用于将文件与邮件一起附加。要添加附件,请执行以下命令:
echo "Message body" | mail -s "Subject" -r "" -a /path/to/file
上面的命令将使用邮件从指定路径附加指定文件。
mail命令可用于读取所有收到的邮件。但是,从命令行读取邮件不是很酷,但是我们可以理解它以了解知识。要阅读收件箱中的邮件,请执行不带任何选项的mail命令,如下所示:
mail
上面的命令将显示所有传入的邮件。
要阅读mail命令的手册,请按以下方式执行man命令:
man mail
上面的命令将在您的终端上显示mail命令的手册。考虑以下输出:
按“ q”键退出手册,按“ h”键寻求帮助。帮助选项列出了更多可以帮助您的选项。考虑下图:
要退出帮助,请按“ q”键。