当前位置: 首页 > news >正文

使用 mutt 发送邮件:Linux 下轻量高效的命令行邮件工具

文章目录

  • 一、安装 mutt
  • 二、配置 .muttrc
  • 三、发送一封简单邮件
  • 四、发送给多个收件人
  • 五、发送附件
  • 六、临时设置发件人
  • 七、脚本示例:
  • 八.结语

在 Linux 或类 Unix 系统中,mutt 是一款经典且强大的命令行邮件客户端(MUA,邮件用户代理)。相比之下,像 postfix 和 sendmail 这样的邮件传输代理(MTA)功能更全面,但也更复杂和重量级。mutt 轻量且灵活,非常适合通过脚本或终端快速发送邮件,广泛应用于服务器自动化通知、备份提醒和系统告警等场景。

这篇文章将带你快速上手 mutt 的发信功能,包括:

  • 安装 mutt
  • 配置 .muttrc
  • 命令行发送邮件
  • 群发、多收件人
  • 附件发送
  • 自定义发件人

一、安装 mutt

在大多数 Linux 发行版中,mutt 都可以通过包管理器直接安装:
Ubuntu / Debian 系列:
bash

sudo apt update
sudo apt install mutt

RHEL / CentOS / AlmaLinux:

sudo yum install mutt

二、配置 .muttrc

mutt 默认使用配置文件 ~/.muttrc。如果你打算通过 SMTP 服务器(比如公司邮件服务器)发信,你需要在 .muttrc 中配置发信账号和密码。

set from = "bkmanager@lab.com"
set realname = "Backup Manager"
set smtp_url = "smtp://bkmanager@lab.com@zsys.lab.com:587/"
set smtp_pass = "labbkm123*"
set use_from = yes
set ssl_starttls = yes
set ssl_force_tls = yes

说明:

  • from 是你的发件人邮箱地址
  • realname 是显示名称
  • smtp_url 包含 SMTP 服务器地址和账号(注意用户名中“@”前要加转义或双写
  • smtp_pass 是发信密码
    建议将 .muttrc 权限设置为仅限用户访问,以避免泄露密码:
chmod 600 ~/.muttrc

三、发送一封简单邮件

echo "请插入磁带" | mutt -s "未检测到磁带" dba@lab.com

参数说明:

  • echo 后面是邮件正文
  • -s 指定邮件标题
  • 后面是收件人地址

四、发送给多个收件人

echo "请插入磁带" | mutt -s "未检测到磁带" dba@lab.com admin@lab.com

加抄送(Cc)或密送(Bcc):

echo "请插入磁带" | mutt -s "未检测到磁带" -c manager@lab.com -b audit@lab.com dba@lab.com

五、发送附件

可以通过 -a 参数添加附件(支持多个),注意收件人前加上 – 分隔符:

echo "请查看附件日志" | mutt -s "系统错误日志" -a /var/log/syslog -- admin@lab.com

六、临时设置发件人

如果你不想在 .muttrc 中写死发件人,可以用 -e 临时设定:

echo "测试邮件" | mutt -s "测试" \
-e "set from='alert@lab.com' realname='系统告警'" \
admin@lab.com

七、脚本示例:

#Set Mail
VAR_MAIL_LOCAL="pcc.dba@pouchen.com,pusat_dba@lab.com, infrateam1@lab.com,edphardware@lab.com"#Set Sender
VAR_MAIL_Sender="bkmanager@lab.com"#Mail subject
VAR_MAIL_SUBJECT="Tape_Backup_Result: DB Tape Backup"# Specfic logfile location
TAPE_LOG_FILE="$HOME/logs/test.log"#Construct Email header
EMAIL_Header="/backup/script/email_header.txt"
cat <<EOF > $EMAIL_Header
To: $VAR_MAIL_LOCAL
From: "Backup Manager" <${VAR_MAIL_Sender}>
Subject: ${VAR_MAIL_SUBJECT} [$TODAY]
$(cat "$TAPE_LOG_FILE")
EOF#Send Mail 
set $(date)
TODAY=$6-$2-$3mutt -H $EMAIL_Header -a "$TAPE_LOG_FILE"

八.结语

使用 mutt 发送邮件既轻量又灵活,非常适合系统管理员在自动化运维中使用。相比 mail、sendmail 等工具,mutt 更容易配置 TLS SMTP,也更具可读性。

如果你有更复杂的邮件需求(例如图文、HTML、嵌套附件等),mutt 也完全可以胜任。

相关文章:

  • NV009NV010美光闪存颗粒NV011NV012
  • Java面试问题基础篇
  • BISS0001 PIR红外感应IC:高性能热释电信号处理解决方案
  • DNS服务搭建与配置详解
  • JS手写代码篇---手写Promise
  • 【NLP】基于JointBERT的意图识别
  • 基于JDBC的信息管理系统,那么什么是JDBC呢?什么又是DAO类?
  • DDI核心网络服务是什么意思?有什么用?
  • 模板初阶【C++】
  • drop tablespace XXX including contents and datafiles删除表空间后,磁盘空间不释放
  • LlamaIndex
  • 46页 @《人工智能生命体 新启点》中國龍 原创连载
  • 【209. 长度最小的子数组】
  • DL00988-稀疏增强数据transformer船舶AIS轨迹预测含完整数据集
  • 开源免费抓包工具:ProxyPin 的详细使用
  • [TCG] 01.QEMU TCG 概览
  • Oracle BUFFER CACHE内存不足的优化思路
  • 多线程(七)
  • BigFoot (DBM) Deadly Boss Mods
  • export和import的书写方式
  • 微网站注册/在运营中seo是什么意思
  • 申请域名后怎么做网站/大连网站建设费用
  • 徐州在线制作网站/手机优化软件
  • 做网站设计收入/sem是什么显微镜
  • 网站备案流程/百度竞价推广联系方式
  • 中国太平保险集团官方网站/口碑营销的案例