如何在Python中组合这两段代码?

如何在Python中组合这两段代码?,python,email,network-monitoring,Python,Email,Network Monitoring,我想找到一种方法,将这两段代码组合成一个单一的函数,每当某个服务器出现故障时(即服务器不再接收ping),该函数将向我发送电子邮件。我将如何使用这两个代码段来实现这一点 import smtplib import subprocess ##Ping hostname = "x.x.x.x" output = subprocess.Popen(["ping.exe",hostname],stdout = subprocess.PIPE).communicate()[0]

我想找到一种方法,将这两段代码组合成一个单一的函数,每当某个服务器出现故障时(即服务器不再接收ping),该函数将向我发送电子邮件。我将如何使用这两个代码段来实现这一点

import smtplib
import subprocess
##Ping
    hostname = "x.x.x.x"
    output = subprocess.Popen(["ping.exe",hostname],stdout = subprocess.PIPE).communicate()[0]

    print(output)

    if ('unreachable' in output):
        print("Offline")

##Email
    fromaddr = 'someone@gmail.com'
    toaddrs  = 'somebody@somewhere.com'
    msg = 'Subject: %s\n\n%s' % ('SERVER STATUS', 'Server is Down')
    # Login info
    username = 'user'
    password = 'pass'

    # Outgoing SMTP
    server = smtplib.SMTP('smtp.gmail.com:587')
    server.starttls()
    server.login(username,password)
    server.sendmail(fromaddr, toaddrs, msg,)
    server.quit()

只需将其包含在
if
块中:

import smtplib
import subprocess
##Ping
    hostname = "x.x.x.x"
    output = subprocess.Popen(["ping.exe",hostname],stdout = subprocess.PIPE).communicate()[0]

    print(output)

    if ('unreachable' in output):
        print("Offline")
        fromaddr = 'someone@gmail.com'
        toaddrs  = 'somebody@somewhere.com'
        msg = 'Subject: %s\n\n%s' % ('SERVER STATUS', 'Server is Down')
        # Login info
        username = 'user'
        password = 'pass'

        # Outgoing SMTP
        server = smtplib.SMTP('smtp.gmail.com:587')
        server.starttls()
        server.login(username,password)
        server.sendmail(fromaddr, toaddrs, msg,)
        server.quit()

创建一个函数
send_email
&如果你的
if
阻塞,就调用这个函数?!此外,如果邮件根据服务器的停机情况发送给不同的人,则需要有一个查找表。