📜  Python|网站启动时收到电子邮件提醒

📅  最后修改于: 2022-05-13 01:55:25.154000             🧑  作者: Mango

Python|网站启动时收到电子邮件提醒

在本文中,我们将学习如何使用一个简单的Python脚本检查任何网站是否正在运行或已关闭。我们将使用 Python 的 requests 库来发送'get'请求和'smtplib'库来在网站启动时发送电子邮件通知。这意味着我们不需要每次都检查。当网站运行时,我们的Python程序将通过电子邮件通知我们。
此脚本仅检查网站是否已启动。如果它启动,那么它将发送一封电子邮件,如果它关闭,那么它将继续检查,当站点启动时,它将发送一封电子邮件并终止。
安装:
转到命令提示符并编写以下命令:

pip install requests, smtplib

以下是步骤:

  • 将整个代码放入 try 块中,以处理异常。
  • 向我们想要的网站发送获取请求。
  • 如果网站没有运行,那么我们不会得到响应从而引发异常。
  • 然后在 except 块中,我们只打印该网站未运行。
  • 如果没有抛出异常,则意味着我们得到了响应并且网站正在运行。
  • 现在为通过 gmail 登录创建 SMTP 会话。
  • 输入正确的 gmail id 和密码。
  • 发送邮件并完成。

下面是实现:

Python3
import smtplib, requests, time
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
 
while(1):
    try:
        # Replace the url for your desired website
        url = "https://www.facebook.com/"
 
        # Send the get request to the website
        r = requests.get(url)
 
        # creates SMTP session
        s = smtplib.SMTP("smtp.gmail.com", 587)
 
        # start TLS for security
        s.starttls()
 
        # Authentication
        s.login("sender_gmail_id", "sender_password")
 
        # Instance of MIMEMultipart
        msg = MIMEMultipart("alternative")
 
        # Write the subject
        msg["Subject"]= url + " is working now."
 
        msg["From"]="sender_gmail_id"
        msg["To"]="receiver_gmail_id"
 
        # Plain text body of the mail
        text = url + " is running now."
 
        # Attach the Plain body with the msg instance
        msg.attach(MIMEText(text, "plain"))
 
        # HTML body of the mail
        html ="

Your site is running now.


Click here to visit."           # Attach the HTML body with the msg instance         msg.attach(MIMEText(html, "html"))           # Sending the mail         s.sendmail("sender_gmail_id", "receiver_gmail_id", msg.as_string())         s.quit()         print('sent')         break     except:         print('site is down yet...')         print('sleeping...')           # Sleeping for 60 seconds. We can change this interval.         time.sleep(60)         print('Trying again')         continue