习惯于图形界面的用户,常觉得在Linux系统里管理邮件是件复杂之事。然而实际上,凭命令行工具,在服务器管理、脚本集成等情形下,能更高效且自动化地处理邮件任务。mail命令是个历史久却仍实用的基础工具,它能在终端直接完成发送、接收以及阅读邮件等操作。掌握它,可不依赖桌面环境,轻松达成邮件相关的运维或通知工作。
如何在Linux中安装mail命令
关于许多Linux发行版,其默认状态下并未安装那个完整的mail命令包,在以Debian/Ubuntu为基础的系统里,一般来讲需要安装mailutils或者bsd-mailx软件包,你能够运用sudo apt install mailutils命令去进行安装,在安装进程当中或许会提示你去配置邮件系统,对于单纯的发送需求而言,选择“仅本地”这种配置就行。

对于Red Hat、CentOS、Fedora等这类的些操作系统来讲罢,其对应的软件包有可能就会是那个mailx。借助sudo yum install mailx或是用到sudo dnf install mailx这样的操作方式,便能够达成安装这一行为。在安装完成以后呢,你能够于终端处输入mail --version,以此用来查验是不是安装成功了。一定要保证你所安装的内容是与传统mail命令语法相兼容适配的版本哟,毕竟来讲不同包的功能是会存在有着一些细微差异之处的。
使用mail命令发送邮件的基本格式
那个最基础的发送命令是mail -s “主题” 收件人地址 ,在执行完这个命令之后 ,就会进入到一个交互界面 ,在这个界面里你能够输入邮件正文 ,等输入完毕之后按下Ctrl+D就能够发送 。比如说 ,要向发送一封标题是“测试”的邮件linux操作系统简介,只需要输入mail -s "测试" 。

更常运用的方式是把正文部分借助管道或者文件径直传入,举例来说,echo “邮件正文内容” | mail -s “主题” ,你同样能够把正文书写于一个文本文件里,随后运用mail -s “主题” 。< body.txt来发送。这种方式非常适合在脚本中自动发送日志或报告。
<strong>如何通过mail命令发送带附件的邮件</strong>
本就原生的mail命令自身并不支持直接去添加附件,发送附件一般而言需要借助别的工具,像是uuencode或者mutt,一种经典的办法是结合uuencode命令,它能够把二进制文件编码成文本格式跟着邮件去发送,命令格式是:uuencode附件文件附件显示名称 | mail -s “主题”收件人地址。
首先,要保证系统当中安装了那个名为sharutils的包,此包里面包含着uuencode。在进行发送这个动作的时候,邮件的正文部分是需要跟附件一块儿去做处理的。你能够按照下面这样的方式来操作:先是(echo “邮件正文”; uuencode /path/to/file.zip file.zip),然后通过管道符把这个结果输送给mail -s “带附件的邮件” 。如此这般就会将正文以及经过编码之后的文件一同给发送出去,而收件人那边的客户端是能够正确地把附件给解码出来的。
<strong>mail命令如何设置发件人地址</strong>
正常情况假设下,隶属于当前系统用户的邮箱地址会被mail命令当作发件人来使用linux mail命令,然而在众多外部邮件服务器看来,这样的发件人是不可信赖的,进而极有可能致使邮件遭到拒收。你能够借助-r参数把发件人地址清晰设定linux mail命令,举例来说:mail -s “主题” -r “” 。
更具一劳永逸特性的办法是于系统或者用户层面去配置邮件发送代理(像是sendmail或者postfix)的默认发件人地址,另外,你能够在用户家目录下的.mailrc配置文件里增添一行set from=”Your Name 。<>如此一来,每当运用mail命令之际,皆会自动借助这个地址当作发件人,并不需要每次于命令行里予以指定。

<strong>如何查看和阅读接收到的邮件</strong>
mail命令能够用以读取本地邮件队列里的邮件,直接于终端键入mail命令,不携带任何参数,便会进入邮件阅读界面,系统会罗列出收件箱中的邮件列表,每一封邮件之前都有一个编号,输入相应的编号,接着按下回车,就能够查看该邮件的详细内容。
处于邮件阅读界面之时,存在着一些常用的命令,输入d编号´能够将指定邮件予以删除,输入u编号´能够把已删除的邮件进行恢复,输入q´会退出且保存更改,输入x´则不保存任何更改径直退出,这些命令有助于你对本地系统的邮件加以管理,通常而言这些邮件是系统服务比如cron作业发送出来的通知。
<strong>mail命令在脚本中的自动化应用</strong>

将mail命令用于服务器监控脚本时,其最大优势是极具的可脚本<strong>程度那叫一个不得了</strong>,在磁盘空间不足、服务出现宕机状况还有发<strong>生安全方面的异常情况</strong>之际,它能够自动给管理员发送警报邮件,举例来说如何安装LINUX,有一个用于检查磁盘使用率的脚本,当超过设定的那一阈值之时,就会进行如下操作:把“根分区使用率超过90%”这个内容通过管道符输送给mail命令,紧接着mail命令执行相关的发送邮件操作,收件人是,并且在邮件主题处填充上“磁盘警报” 。
在定时任务cron job里头,mail命令同样起着关键作用。cron默认会把作业的输出经由邮件发送给任务所属的用户。你能够通过设置MAILTO环境变量去指定接收这些输出的邮箱地址。比如,在crontab文件开头添加上MAILTO=””,随后所有cron作业的输出都会自动发送到那个邮箱,方便集中查看日志。
哪些具体的自动化任务或者系统通知,是你平常运用mail`命令去处理的呢?欢迎于评论区把你的使用场景以及技巧分享出来,要是认为本文有用处,请点赞并且分享给更多有需求的朋友们了。
