1 前言
一个问题,一篇文章,一出故事。
笔者生产环境某服务器需要发送警告邮件,于是需要配置一个邮件空客户端来满足此需求。
2 最佳实践
2.1 配置PostFix
2.1.1 安装PostFix软件包
yum install -y postfix
2.1.2 修改配置文件
cp /etc/postfix/main.cf /etc/postfix/main.cf.default vim /etc/postfix/main.cf
需要在配置文件末尾加入如下配置,
myhostname = ser.cmdschool.org myorigin = cmdschool.org relayhost = 10.168.0.168 inet_interfaces = loopback-only mydestination = local_transport = error:local mail delivery is disabled
参数的作用如下,
– 参数“myhostname”声明postfix运行的主机名称
– 参数“myorigin”声明发件人的本地域名
– 参数“relayhost”声明smtp邮件中继服务器(范例中smtp根据IP地址验证,没有开启用户名和密码验证)
– 参数“inet_interfaces”声明发送邮件的网卡接口,范例指定回环接口
– 参数“mydestination”声明本机邮件的目标域名(即本地接收邮件域,如“cmdschool.org”),范例为空即不接收
– 参数“local_transport”声明本地邮件分发,范例“error:local mail delivery is disabled”为禁用本地分发
2.1.3 重启服务并配置服务开机启动
systemctl restart postfix systemctl status postfix systemctl enable postfix
2.2 配置邮件客户端
2.2.1 安装邮件客户端软件包
yum install -y mailx
2.2.2 测试邮件发送
echo "test" | mail -s "test mail 001" -r seradmin@cmdschool.org will@cmdschool.org
参数的作用如下,
– 参数值“test”声明发送的邮件内容
– 参数“s”声明发送的邮件主题
– 参数“r”声明发件人的邮箱地址
– 参数值“will@cmdschool.org”声明邮件的目标地址
另外,可以配合cat使用,
cat << EOF | mail -s "test mail 001" -r seradmin@cmdschool.org will@cmdschool.org test body start test body end EOF
如果shell的函数环境,你可能需要这样书写,
cat <<-EOF | mail -s "test mail 001" -r seradmin@cmdschool.org will@cmdschool.org test body start test body end EOF
另外,也支持从一个文件导入邮件内容,
echo "test" > message.txt mail -s "test mail 001" -r seradmin@cmdschool.org will@cmdschool.org < message.txt
如果需要发送附件,请参阅如下范例,
echo "test" | mail -s "test mail 001" -a /etc/redhat-release -r seradmin@cmdschool.org will@cmdschool.org
参阅文档
————–
http://www.postfix.org/BASIC_CONFIGURATION_README.html
没有评论