溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python通過(guò)微信發(fā)送郵件實(shí)現(xiàn)電腦關(guān)機(jī)

發(fā)布時(shí)間:2020-09-09 12:00:53 來(lái)源:腳本之家 閱讀:158 作者:shhchen 欄目:開(kāi)發(fā)技術(shù)

Python 通過(guò)微信郵件實(shí)現(xiàn)電腦關(guān)機(jī),供大家參考,具體內(nèi)容如下

通過(guò)手機(jī)微信發(fā)送QQ郵件給sina郵箱,然后利用python的pop3定時(shí)檢查sina郵箱的郵件主題以及郵件來(lái)源,并在電腦執(zhí)行相應(yīng)的命令行實(shí)現(xiàn)關(guān)機(jī)。

Email_test【V1.0】

import poplib 
import os 
import time 
from email.parser import Parser 
from email.header import decode_header 
from email.utils import parseaddr 
 
#編碼轉(zhuǎn)換函數(shù) 
def decode_str(s): 
  value, charset = decode_header(s)[0] 
  if charset: 
    value = value.decode(charset) 
  return value 
 
#獲取email主題 
def get_Subject(msg): 
  #提取Subject信息 
  Subject = msg.get('Subject') 
  #編碼轉(zhuǎn)換 
  Subject = decode_str(Subject) 
  return Subject 
 
def judge(Subject, e_addr): 
  if (Subject == '關(guān)機(jī)' and e_addr == '532101629@qq.com'): 
    return 1 
  else: 
    return 0 
 
#檢索郵件主題 
def Check_Subject(host, user, password): 
  result = 0 
  try: 
    pop_connect = poplib.POP3(host=host, timeout=3) 
    print(pop_connect.getwelcome()) 
 
    pop_connect.user(user) 
    pop_connect.pass_(password) 
    print('Messages: %s. Size: %s' % pop_connect.stat()) 
 
    #服務(wù)器返回信息,消息列表,返回信息的大小。 
    number = len(pop_connect.list()[1]) 
    print('消息列表長(zhǎng)度:', number) 
 
    #檢索所有郵件 
    for index in range(1, number+1): 
      #獲取第一封郵件信息 
      msglines = pop_connect.retr(index)[1] 
      # 可以獲得整個(gè)郵件的原始文本(重新排版后的): 
      str = b'\r\n' 
      msg_content = str.join(msglines).decode('utf-8') 
      print('\n', msg_content) 
      #將原始郵件轉(zhuǎn)換為email實(shí)例: 
      msg = Parser().parsestr(msg_content) 
 
      # 獲取email主題 
      Subject = get_Subject(msg) 
      print(Subject) 
      # 獲取email地址 
      email_addr = parseaddr(msg.get('From'))[1] 
      #信息判斷 
      result = judge(Subject, email_addr) 
      print(result) 
      #根據(jù)判斷結(jié)果,執(zhí)行操作 
      if result == 1: 
        pop_connect.dele(index) 
        break 
    # 登出email 
    pop_connect.quit() 
    return result 
 
  except Exception as e: 
      print('login fail! ' + str(e)) 
      quit() 
 
def main(): 
  host = 'pop.sina.com' 
  user = '********@sina.com' 
  password = '********' 
  while 1: 
    result = Check_Subject(host, user, password) 
    if result == 1: 
      cmd = 'cmd /k shutdown -l' 
      os.system(cmd) 
      break 
    time.sleep(60) # 兩次檢索郵件的時(shí)間間隔60s 
 
main() 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI