shell群发邮件脚本
linux版本:CentOS 6.7 //可以使用lsb_release -a查看
一、修改/etc/mail.rc
set from=123456@qq.com //你自己的真实邮箱地址 set smtp=smtp.exmail.qq.com //在邮箱设置,客户端设置,设置方法,发送服务器里 set smtp-auth-user=123456@qq.com //自己邮箱真实地址 set smtp-auth-password=123456 //自己邮箱密码 set smtp-auth=login :wq
重启postfix服务
二、到这里已经实现实现外部邮箱发送mail了,可以命令行输入
echo "Test Mail" | mail -s "Test" 123456@qq.com
########################################################################
也可以写脚本:
#!/bin/bash user=" 目标1 123456789@qq.com 目标2 123456789@163.com …… " userlist=`echo -e "${user}" | awk '{print $2}'` echo $userlist mail -v -s "测试邮件" $userlist < test.txt :wq
其中:
-v 显示详细信息
-s 邮件标题
test.txt 是你要输入邮件的内容
然后crontab -e 编辑计划任务,就可以实现定时发送邮件啦!
如果发送的邮件是tcmime.874.874.1356.bin这样的附件格式:
yum -y install dos2unix #安装dos2unix转换工具
dos2unix -k test.txt #解决发送内容变为附件问题,可在脚本中加入
解决中文乱码问题:
在脚本中加入:#export LANG=zh_CN.UTF-8
附件:/etc/postfix/main.cf的主要参数:
参数 作用 myhostname 邮局系统的主机名。 mydomain 邮局系统的域名。 myorigin 从本机寄出邮件的域名名称。 inet_interfaces 监听的网卡接口。 mydestination 可接收邮件的主机名或域名。 mynetworks 设置可转发那些主机的邮件。 relay_domains 设置可转发那些网域的邮件
使用Zabbix服务端本地邮箱账号发送邮件
一、安装sendmail或者postfix
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
yum install postfix
service postfix start
chkconfig postfix on
CentOS 5.x 默认已经安装好sendmail
CentOS 6.x 默认已经安装好postfix
sendmail和postfix只需要安装一个即可并开启服务即可。
二、安装邮件发送工具mailx
1、yum安装
yum -y install mailx #安装
CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送可能会有问题。
yum remove mailx #卸载系统自带的旧版mailx
2、编译安装
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make install UCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
echo "zabbix test mail" |mail -s "zabbix" xxx@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:xxx@163.com