一、Python发送邮件
import smtplib from email.mime.text import MIMEText def send(email_to,title,content): msg = MIMEText(content,"plain","utf-8") froms = "[email protected]" to_list = email_to.replace("\n","").split(",") print(to_list) msg["Subject"] = title # 传参 msg["From"] = froms # 发件人 msg["To"] = email_to # 收件人 server = smtplib.SMTP_SSL("smtp.qq.com",465) server.login(froms,"oylltctlxijogdbb") server.sendmail(froms,to_list,msg.as_string()) # 发送人,收件人列表, # 内容 print("发送成功") server.quit() title = "邮件报警测试" content = """系统磁盘空间或内存可能快要满了""" email_to = """ 1257063655@qq.com """ if __name__ == '__main__': send(email_to,title,content)
二、zabbix实现邮件报警
1)添加python脚本文件
#! /usr/bin/env python3 # -*- coding: utf-8 -*- import smtplib import sys from email.mime.text import MIMEText def send_mail(email_to,title,content): msg = MIMEText(content,"plain","utf-8") froms = "[email protected]" to_list = email_to.replace("\n","").split(",") print(to_list) msg["Subject"] = title # 传参 msg["From"] = froms # 发件人 msg["To"] = email_to # 收件人 server = smtplib.SMTP_SSL("smtp.qq.com",465) server.login(froms,"oylltctlxijogdbb") server.sendmail(froms,to_list,msg.as_string()) server.quit() if __name__ == '__main__': send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
2) 使用shell脚本去调用python脚本来进行发送邮件
[root@zabbix alertscripts]# cat send_email.sh #!/bin/sh /usr/bin/python3 /usr/local/zabbix/alertscripts/send_email.py $1 $2 $3
[root@zabbix alertscripts]# chmod o+x send_email.sh