python监控网站的功能(如果网站响应值不是200则发送邮件通知)

2023-05-19
120次阅读
没有评论

py代码如下:

import requests
import smtplib
from email.mime.text import MIMEText

def send_email(subject, message):
    sender_email = "your_email@example.com"
    receiver_email = "recipient_email@example.com"
    password = "your_email_password"
    
    # 设置邮件内容
    msg = MIMEText(message)
    msg['Subject'] = subject
    msg['From'] = sender_email
    msg['To'] = receiver_email
    
    # 发送邮件
    with smtplib.SMTP('smtp.gmail.com', 587) as server:
        server.starttls()
        server.login(sender_email, password)
        server.sendmail(sender_email, receiver_email, msg.as_string())

def monitor_website(url):
    try:
        response = requests.get(url)
        if response.status_code != 200:
            subject = "Website Monitor - Response Error"
            message = f"The website {url} is responding with status code {response.status_code}."
            send_email(subject, message)
    except requests.exceptions.RequestException as e:
        subject = "Website Monitor - Connection Error"
        message = f"Unable to connect to the website {url}. Error: {str(e)}"
        send_email(subject, message)

# 在此处设置要监控的网站URL
website_url = "https://example.com"

# 监控网站
monitor_website(website_url)

说明:

我记得我以前手撸了一个php版本的,而且同时监控了上百个网站,任何一个网站的返回值不是200就会发送邮件通知我。

由于之前大意了,没有将php 版本的代码分享出来,也没有做任何的备份。

因为是直接在宝塔后台敲出来的,忘记保存一份到本地了,导致代码丢失。后面想在用的时候发现当初的思路还在,但已经不想再搞了。

然后就一直拖着,今天用ai帮我写了一个python版本的,试用了一下感觉还不错。

如果上面的代码到你的环境中无法执行,看一下是不是没有导入环境。

如何使用:

将上面的网站 https://example.com 换成你需要监控的。

同样也是可以改成多网站版本的,记得代码是需要修改的,具体如何改大家自己研究吧。

正文结束
居烽
版权声明:本站原创文章,由 居烽 于2023-05-19发表,共计1247字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码