附上python邮件发送脚本(对于发送测试邮件不成功的情况可以看下debug中的错误代码提示,如(554, DT:SPM)一般情况是发送的邮件被视为垃圾邮件和病毒邮件,需要调整发件内容):


#!/usr/bin/python 
# -*- coding: utf-8 -*-

#python-version:2.7

from email import encoders
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr, formataddr
import smtplib
import sys

def send_mail(_to_email,_subject,_message):
    from_addr = "xxxx@163.com"
    password = "your_password"
    smtp_server = "smtp.163.com"
    msg = MIMEText(_message, 'plain', 'utf-8')
    msg['Subject'] = _subject
    server = smtplib.SMTP(smtp_server, 25)
    # 使用SSL加密传输
    #server = smtplib.SMTP_SSL(smtp_host,994) 
    # 对发送过程开启调试模式
    server.set_debuglevel(1)                  
    server.login(from_addr, password)
    server.sendmail(from_addr, [_to_email], msg.as_string())
    server.quit()
if __name__=='__main__':
    send_mail(sys.argv[1],sys.argv[2],sys.argv[3])



使用shell 借助mailx 发送邮件脚本, 需要安装dos2unix:

yum install mailx dos2unix -y


#!/bin/bash
to=$1
subject=$2
body=$3
echo "$body" >/tmp/zabbix_mail.log
dos2unix /tmp/zabbix_mail.log
mail -s "$subject" "$to"  < /tmp/zabbix_mail.log
#cat <<EOF | mail -s "$subject" "$to" 
#$body
#EOF
echo "===================" >> /tmp/zabbix_mail.log

使用mail 命令发送邮件还需要配置/etc/mail.rc 文件,在最后添加邮箱服务器信息:

set from=alert_mail@126.com
set smtp=smtp.126.com
set smtp-auth-user=alert_mail@126.com
set smtp-auth-password=password
set smtp-auth=login