#!/usr/bin/python3
#coding=utf-8
import pycurl
import os
import sys
import time
import email
import curl
import requests
def sendEmail(subject,text):
from smtplib import SMTP
#定义smtp主机
HOST="smtp.exmail.qq.com"
#subject 邮件主题 text 邮件内容,必须为英文
#定义邮件收件人
TO = "xxx@xxx.com"
#定义邮件发件人
FROM="xxx@xxx.com"
#组合sendmail方法的邮件主体内容,各段以"\r\n"进行分离
BODY = '\r\n'.join((
"From: %s" %"admin",
"TO: %s" %TO,
"subject: %s" %subject,
"",
text
))
#创建一个smtp对象
server = SMTP()
#链接smtp主机
server.connect(HOST,'25')
#邮箱账号登
server.login(FROM,"xxxx")
#发送邮件
server.sendmail(FROM,TO,BODY)
#端口smtp链接
server.quit()
##通过num参数来传递次数,以此控制是否发送邮件
def check_web():
url='http://www.xxx.com'
re = requests.get(url)
###网站如果能打开,则能查到ICP信息,故以ICP做匹配关键词,或者也可以匹配其他的词
r=re.text.find('ICP')
text=""
subject=""
num=0
if (r<0):
print("normal")
num=0
else:
text="at the time "+time.strftime("%Y/%m/%d %H:%M:%S")+" the "+url+" is can not open"
subject="the "+url+"is wrong"
#sendEmail(subject,text)
num=1
return num,text,subject
i=0
while True:
a=check_web()
print('+++++++++++++++++++',a)
if (a[0] ==1):
i=i+a[0]
else:
i=0
print('邮件开关',i)
if (i>3 and i <6):
sendEmail(a[2],a[1])
time.sleep(10)
后续可以将监控的网站定义成一个列表,然后循环列表去监控每个网站,或者将网站url设为参数来查询