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


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/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:

1
yum  install  mailx dos2unix -y


1
2
3
4
5
6
7
8
9
10
11
#!/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 文件,在最后添加邮箱服务器信息:

1
2
3
4
5
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