CentOS6下Amanda结合Postfix时sendmail无效选项'-s'问题求助
问题分析与解决
问题根源
Amanda的amreport工具在调用配置的mailer命令时,会自动追加-s <邮件主题>参数。而Postfix提供的sendmail兼容程序(/usr/sbin/sendmail)并不支持-s选项——原生Sendmail的-s用于指定主题,但Postfix的sendmail兼容层依赖邮件内容中的Subject头来设置主题,不接受命令行的-s参数,因此触发报错。
解决方法
方法1:改用系统mail命令替代Postfix的sendmail
修改amanda.conf中的mailer配置为:
mailer "/usr/bin/mail -s"
/usr/bin/mail是CentOS 6默认的邮件客户端,支持-s选项指定主题,Amanda追加主题参数后,执行的命令会变成/usr/bin/mail -s "Amanda Backup Report...",可以正常发送邮件。
方法2:编写中间脚本处理-s参数
如果必须使用Postfix的sendmail,可以创建一个shell脚本作为中转,将-s参数转换为邮件头:
- 创建脚本文件(比如
/usr/local/bin/amanda_sendmail.sh):
#!/bin/bash # 提取-s后的主题参数 if [ "$1" = "-s" ]; then SUBJECT="$2" shift 2 fi # 将主题作为邮件头,拼接内容后调用Postfix sendmail echo "Subject: $SUBJECT" | cat - - | /usr/sbin/sendmail -t "$@"
- 给脚本添加执行权限:
chmod +x /usr/local/bin/amanda_sendmail.sh
- 修改
amanda.conf的mailer配置:
mailer "/usr/local/bin/amanda_sendmail.sh"
方法3:验证Postfix sendmail的兼容性
可以直接在命令行测试Postfix的sendmail用法,确认它不支持-s:
/usr/sbin/sendmail -s "Test Subject" your@email.com
会返回和你遇到的相同错误,这也验证了问题确实是参数不兼容导致的。
内容的提问来源于stack exchange,提问作者Leslie
相关产品推荐
相关产品推荐

