shell群发邮件脚本

时间:2022-01-02 06:14:51

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