mail 命令是 Linux 系统中一个经典的命令行邮件客户端,用于发送和接收电子邮件。它非常适合在脚本中发送通知邮件或快速查看系统邮件。
- 发送邮件
这是最常用的功能,基本语法如下:
mail -s "邮件主题" 收件人地址
输入命令后,按回车进入编辑模式,输入邮件正文。完成后,在新的一行单独输入一个点 . 并按回车,即可发送。
常用发送方式示例:
1. 直接输入内容发送
mail -s "测试主题" user@example.com
2. 使用管道,直接发送已有内容
echo "这是邮件正文" | mail -s "通知" user@example.com
3. 发送文件内容作为正文
mail -s "报告附件" user@example.com < /path/to/report.txt
4. 发送给多个收件人
mail -s "会议提醒" user1@example.com,user2@example.com
- 查看收件箱
直接输入 mail 命令(不带参数)即可进入交互式收件箱界面,查看系统为当前用户保存的邮件(通常位于 /var/mail/用户名)。
在收件箱界面中,常用的操作指令有:
• 回车:查看当前高亮邮件的详细内容。
• 数字 N:直接查看第 N 封邮件。
• d N:删除第 N 封邮件。
• q:退出 mail 程序。
• ?:显示所有可用的命令帮助。
- 常用选项
选项 说明
-s "主题" 指定邮件的主题。
-c "地址" 指定抄送收件人。
-b "地址" 指定密送收件人。
-r "发件人" 指定发件人地址(部分系统需要配置)。
一个综合示例:
从文件中读取收件人列表,并发送带有特定发件人的邮件
mail -s "月度报告" -c "boss@company.com" -r "system@hostname" $(cat mail_list.txt) < report_content.txt
⚠️ 重要提示
• mail 命令通常需要系统上安装并配置了邮件传输代理(如 sendmail 或 postfix)才能正常发送外部邮件。在许多服务器上,它默认配置为发送本地系统邮件。
• 对于需要发送附件或更复杂邮件的场景,可以考虑使用功能更强大的 mutt 命令或 mailx(mail 的增强版本)。