Linux使用mutt命令行发送邮件的详细流程

 更新时间:2025年11月12日 10:13:27   作者:中年如酒  
本文介绍了如何在 Linux 或类 Unix 系统中使用 mutt 命令行邮件客户端进行邮件发送,mutt 以其轻量、灵活的特点,广泛应用于服务器自动化通知、备份提醒和系统告警等场景,需要的朋友可以参考下

引言

在 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-$3

mutt -H $EMAIL_Header -a "$TAPE_LOG_FILE"

八.结语

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

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

到此这篇关于Linux使用mutt命令行发送邮件的详细流程的文章就介绍到这了,更多相关Linux mutt发送邮件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何在Linux服务上管理Redis的启动、重启和关闭

    如何在Linux服务上管理Redis的启动、重启和关闭

    Redis是一个高性能的开源键值对存储数据库,广泛用于缓存、会话管理和实时数据处理等场景,本文将详细介绍如何在Linux系统上启动、重启和关闭Redis服务,并提供相关的配置和故障排除技巧,需要的朋友可以参考下
    2024-05-05
  • Linux命令行删除文件实操方法

    Linux命令行删除文件实操方法

    在本篇文章里小编给大家整理了一篇关于Linux命令行删除文件实操方法和技巧,需要的朋友们学习下。
    2019-03-03
  • prometheus如何使用pushgateway监控网路丢包

    prometheus如何使用pushgateway监控网路丢包

    这篇文章主要介绍了prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • 在linux中执行sql文件方式

    在linux中执行sql文件方式

    在Linux中执行SQL文件,首先需要将本地SQL文件导出,然后将其上传到服务器,通过执行SQL文件,可以将数据库备份或恢复到服务器上,以上经验供参考,希望能帮助到大家
    2025-02-02
  • Linux内核设备驱动之字符设备驱动笔记整理

    Linux内核设备驱动之字符设备驱动笔记整理

    今天小编就为大家分享一篇关于Linux内核设备驱动之字符设备驱动笔记整理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 浅析ARM架构下的函数的调用过程

    浅析ARM架构下的函数的调用过程

    本文主要介绍了linux程序运行的状态以及如何推导调用栈。
    2021-05-05
  • 在CentOS搭建Git服务器的详细步骤

    在CentOS搭建Git服务器的详细步骤

    本篇文章主要介绍了在CentOS搭建Git服务器的详细步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Apache 本地服务器启动后又自动停止解决办法

    Apache 本地服务器启动后又自动停止解决办法

    setup_inherited_listeners(), WSASocket failed to open the inherited socket
    2010-04-04
  • linux环境下如何解决“没有那个文件或目录”

    linux环境下如何解决“没有那个文件或目录”

    这篇文章主要介绍了linux环境下如何解决“没有那个文件或目录”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Linux进程资源占用详解

    Linux进程资源占用详解

    本文档详细介绍了在Linux系统下分析和监控进程资源占用的方法,涵盖了多种工具和命令,如top、htop、ps、pidstat、atop、sar、vmstat、pmap、smem、ss、iotop、lsof等,这些工具可以帮助用户快速查看和监控CPU、内存、I/O等关键指标,从而有效定位和解决资源使用问题
    2025-11-11

最新评论