从命令行在Linux中发送电子邮件

时间:2020-02-23 14:41:52  来源:igfitidea点击:

在本文中,您将学习如何使用常用的邮件命令发送电子邮件。
同样重要的是,您还必须学习如何发送Linux电子邮件附件。

使用的一些命令行选项是:

  • -s:表示邮件的主题
  • -a:表示附件
  • -c:用于复制电子邮件地址(CC)
  • -b:用于密件抄送电子邮件地址(BCC)

Linux从命令行发送电子邮件

我们将学习以下命令以在Linux中发送电子邮件。

  • mail
  • mailx
  • mutt
  • mpack
  • sendmail

1.使用邮件命令

Linux邮件命令非常流行,通常用于从命令行发送电子邮件。
Mail分别作为Debian和Redhat系统上mailutils和mailx软件包的一部分安装。
这两个命令在命令行上处理消息。

要在Debian和Ubuntu系统中安装mailutils,请运行:

$sudo apt install mailutils -y

对于CentOS和RedHat发行版,运行:

$yum install mailx

运行命令时,将弹出以下窗口。
按TAB按钮,然后点击"确定"

在下一个窗口中,滚动并点击" Internet Site"。

此后,系统将完成安装过程。

测试邮件命令

如果已成功安装mail命令,请使用以下格式测试应用程序,然后按Enter:

$mail –s "Test Email" email_address

用您的电子邮件地址替换" email_address"。

例如,

$mail –s "Test Email" [email protected]

按" Enter"后,系统将提示您输入抄送(Cc :)地址。
如果您不希望包含复制的地址,请继续并按ENTER键。

接下来,键入消息或者电子邮件正文,然后按Enter。

最后,同时按Ctrl + D键发送电子邮件。

输出

或者,您可以使用echo命令将要发送的消息通过管道传递到mail命令,如下所示。

$echo "sample message" | mail -s "sample mail subject" email_address

例如,

$echo "Hello world" | mail -s "Test" [email protected]

输出

假设您有一个要附加的文件。
我们将其称为" message.txt"文件。
如何处理?使用下面的命令。

$mail -s "subject" -A message.txt email_address

-A标志定义文件的附件。

例如;

$mail -s "Important Notice" -A message.txt [email protected]

输出

要将电子邮件发送给许多收件人,请运行:

$mail –s "test header" email_address email_address2

2.使用mailx命令

Mailx是mail命令的更新版本,在其他实现中以前被称为nail。
Mailx自1986年以来一直存在,并于1992年并入POSIX。

Mailx是Debian邮件复合软件包的一部分,用于各种情况。
用户,系统管理员和开发人员可以使用此邮件实用程序。
mailx的实现也采用与邮件命令行语法相同的形式。

要在Debian/Ubuntu Systems中安装mailx,请运行:

$sudo apt install mailx

要在RedHat和CentOS中安装mailx,请运行:

$yum install mailx

测试Mailx命令

您可以使用echo命令将输出定向到mail命令,而无需提示输入CC和消息正文,如下所示:

$echo "message body" | mail -s "subject" email_address

例如,

$echo "Make the most out of Linux!" | mail -s "Welcome to Linux" [email protected]

3.使用MUTT命令

Mutt是一个轻量级的Linux命令行电子邮件客户端。
与可以执行基本操作的mail命令不同,mutt可以发送文件附件。
Mutt还从POP/IMAP服务器读取电子邮件,并通过终端连接本地用户。

要在Debian/Ubuntu系统中安装mutt,请运行:

$sudo apt install mutt

要在Redhat/CentOS系统中安装mutt,请运行:

$sudo yum install mutt

测试Mutt命令

您可以在电子邮件地址后立即发送带有 </dev/null的空白消息usign mutt。

$mutt -s "Test Email" email_address < /dev/null

例如,

$mutt -s "Greetings" [email protected] < /dev/null

输出

Mutt命令还可以用于附加文件,如下所示。

$echo "Message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- email_address

例如,

$echo "Hey guys! How's it going ?" | mutt -a report.doc -s "Notice !" -- [email protected]

4.使用mpack命令

mpack命令用于将文件编码为MIME消息,并将其发送给一个或者几个收件人,甚至可以用于发布到不同的新闻组。

要在Debian/Ubuntu系统中安装mpack,请运行:

$sudo apt install mpack

要在Redhat/CentOS系统中安装mpack,请运行:

$sudo yum install mpack

测试mpack命令

使用mpack通过命令行发送电子邮件或者附件非常简单:

$mpack -s "Subject here" -a file email_address

例如,

$mpack -s "Sales Report 2019" -a report.doc [email protected]

5,使用sendmail

此命令是许多发行版中使用的另一种流行的SMTP服务器。

要在Debian/Ubuntu系统中安装sendmail,请运行:

$sudo apt install sendmail

要在RedHat/CentOS系统中安装sendmail,请运行:

$sudo yum install sendmail

测试sendmail命令

您可以按照以下说明使用sendmail命令发送电子邮件:

$sendmail email_address < file

例如,我用以下文本创建了一个文件" report.doc":

Hello there !

发送消息的命令为

$sendmail < report.doc [email protected]