附上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
|
本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/1923962