利用python 通過郵件執行系統命令

來源:互聯網
上載者:User

標籤:

實現思路:通過檢測收件匣中的指定使用者發過來的郵件,檢測郵件標題,執行指定命令。程式定時檢測收件匣中的郵件,分離收件匣中第一封郵件的寄件者和標題,若寄件者不是指定使用者則忽略該郵件;若寄件者匹配,檢測郵件中的標題,並執列名中指定指定命令,同時會發送兩封郵件出去,一封無意義標題的郵件給自己,防止重複執行命令,一封發到指定使用者,告知該使用者相應命令已執行。

 

# -*- coding: cp936 -*-import os, sys, stringimport poplibimport smtplibimport timedef receive_mail():                 #檢測郵箱是否接收到指定郵箱發過來的命令郵件    host = "pop3.126.com"            # pop3伺服器位址    username = "[email protected]"         # 使用者名稱    password = "password"            # 密碼    pp = poplib.POP3(host)         # 建立一個pop3對象,這個時候實際上已經串連上伺服器了    pp.set_debuglevel(1)            # 設定偵錯模式,可以看到與伺服器的互動資訊    pp.user(username)               # 向伺服器發送使用者名稱    pp.pass_(password)              # 向伺服器發送密碼    ret = pp.stat()               # 擷取伺服器上信件資訊,返回是一個列表,第一項是一共有多上封郵件,第二項是共有多少位元組    down = pp.retr(ret[0])        #擷取第一封郵件    # 輸出郵件內容    #for line in down[1]:    #   print line    getfrom=down[1][9].decode(‘utf-8‘)0    getsubject=down[1][11].decode(‘utf-8‘)    pp.quit()  # 退出      if getfrom!=‘From: "=?utf-8?B?5qKB6ZSm5r2u?=" <[email protected]>‘:        pass    else:        if getsubject==‘Subject: reboot‘:            return 1        elif getsubject==‘Subject: restartmq‘:            return 2        elif getsubject==‘Subject: ifconfig‘:            return 3        else:            return 0def sendmail():    send_mail="[email protected]"      #發件郵箱    send_mail_passwd="password"            #發件郵箱密碼    receive_mail=‘[email protected]‘  #接收郵箱        send_mail_server=‘smtp.126.com‘            #發件郵箱smtp伺服器        mail_to = smtplib.SMTP(send_mail_server,25)             mail_to.login(send_mail,send_mail_passwd)    msg = "From: [email protected] <"+send_mail+""">To: <"""+receive_mail+""">Subject: igorn messigorn mess"""    mail_to.sendmail(send_mail,receive_mail,msg)    mail_to.close()        def sendreply():    send_mail="[email protected]"      #發件郵箱    send_mail_passwd="password"            #發件郵箱密碼    receive_mail=‘[email protected]‘  #接收郵箱        send_mail_server=‘smtp.126.com‘            #發件郵箱smtp伺服器        mail_to = smtplib.SMTP(send_mail_server,25)             mail_to.login(send_mail,send_mail_passwd)    msg = "From: [email protected] <"+send_mail+""">To: <"""+receive_mail+""">Subject: order excuorder excu"""    mail_to.sendmail(send_mail,receive_mail,msg)    mail_to.close()if __name__==‘__main__‘:    while 1:        time.sleep(5)        if receive_mail()==1:            sendmail()            sendreply()            os.system(‘shutdown -r now‘)        elif receive_mail()==2:            sendmail()            sendreply()            os.system(‘restartmq‘)        elif receive_mail()==3:            sendmail()            sendreply()            os.system(‘ifconfig‘)        else:            pass

 

利用python 通過郵件執行系統命令

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.