引言
在 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发送邮件内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论