首页 > 代码库 > shell编程基础-sendmail

shell编程基础-sendmail

linux sendEmail工具的安装使用
 
 1.下载文件
  #wget  http://files.cnblogs.com/files/sunziying/sendEmail-v1.56.tar.gz
2.安装
  #yum install sendemail
3、主要参数:
-f 表示from,发件人地址
-t 表示to,收件人地址
-s 发件人mail服务器域名
-u 主题
-xu 发件人用户名(@之前的)
-xp 发件人用户密码
-m 纯文本信息
-o message-file=/root/.. 发送文件中的内容
-a 发送附件 (-m,-o,-a可以同时使用)
 
4、实例:
sendEmail -u test -f $mail_f -t $mail_to_list -s $mail_smtp -xu $mail_user -xp $mail_pwd -o $mail_type message-charset=utf-8 message-file=${tmpfile}
变量参考如下:
export mail_to_list=‘662102@163.com,662103@163.com‘
export mail_f=‘sunzy@163.com‘
export mail_smtp=‘smtp.163.com‘
export mail_user=‘sunzy‘
export mail_pwd=‘*****‘
export mail_type=‘message-content-type=html‘
 
 
5.实例:Linux下监控磁盘使用量并在超过阀值后自动发送报警邮件。
例:
#!/bin/bash
partition_list=(`df -h | awk ‘NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}‘`)

notification_email()
{
    emailuser=‘sunzy@163.com‘   
    emailpasswd=‘*****‘
    emailsmtp=‘smtp.163.com‘
    sendto=‘7589457343@qq.com‘
    title=‘Disk Space Alarm‘
    /usr/sbin/sendmail -f $emailuser -t $sendto -s $emailsmtp -u $title -xu $emailuser -xp $emailpasswd
}

critical=80
crit_info=""
for (( i=0;i<${#partition_list[@]};i+=2 ))
do
    if [ "${partition_list[((i+1))]}" -lt "$critical" ];then
        echo "OK! ${partition_list[i]} used ${partition_list[((i+1))]}%"
    else        
            if [ "${partition_list[((i+1))]}" -gt "$critical" ];then
                crit_info=$crit_info"Warning!!! ${partition_list[i]} used ${partition_list[((i+1))]}%\n"
            fi 
    fi
done
if [ "$crit_info" != "" ];then
    echo -e $crit_info | notification_email
fi

 

 

 

shell编程基础-sendmail