閱讀186 返回首頁    go Python


Python簡直太強大!神級程序員教你如何直接遠程關機!這B可以有

python不僅是一個完成工作的工具,而且還是非常享受他的編程的過程。在前幾篇的文章中,其中有一篇是個關於搭建Ubuntu郵件服務器,來進行一係列的操作,是為了不消耗我自己,這裏還要對郵件在進行編輯,完成遠程一鍵關機,這個關機使用郵件而不是遠程的連接。

為什麼會有這個想法呢?原因是我晚上在實驗室學習一半的時候,出去去吃飯,然後就不不想回去了,或者去上課的時候沒關電腦(當時想著我一定還能回來在學會,結果就直接的玩去了。什麼學習都拋到腦後)這樣一來電腦就會在LAB咆哮一夜,不僅浪費電,還傷害我的電腦,然後就傻傻給別人發短信,幫我把電腦管了吧!這樣感覺不僅麻煩自己,還麻煩別人。於是想到這python的功能,做一個關閉計算機的程序。

然後我教大家怎麼裝逼:在一堆朋友聊天的時候,忽然說:哎呀!我的電腦在那那忘了關機了,你手機借我一下,我關個機。然後就發送一個郵件,電腦管了,再說:好了,電腦關了。這之後就可以講講你是怎樣做到的。OR,在大冬天的時候,再和你女朋友討論是誰下床去把電腦關了的時候,就又是裝逼的時候了。這個時候就會帶來滿滿 的羨慕之情。

預期達成效果

通過用手機,或者電腦發送一份郵件給我的郵箱,電腦過一段時間自己關機。這個裝逼的程度不下於神舟上天。

演示

快進了30倍的Gif

執行計劃

用python寫下一串代碼

郵件開啟授權客戶端密碼和pop3&smtp

smtp和pop

SMTP(Simple Mail Transfer Protoco)簡單郵件傳輸協議

SMTP是一個相對簡單的基於 文本 的 協議 。在其之上指定了一條 消息 的一個或多個接收者(在大多數情況下被確認是存在的),然後消息文本會被傳輸。可以很簡單地通過 telnet 程序來測試一個SMTP服務器。SMTP使用 TCP 端口25。要為一個給定的域名決定一個SMTP服務器,需要使用MX (Mail eXchange) DNS 。

在八十年代早期SMTP開始被廣泛地使用。當時,它隻是作為 UUCP 的補充,UUCP更適合於處理在間歇連接的機器間傳送郵件。相反,SMTP在發送和接收的機器在持續連接的網絡情況下工作得最好。

Sendmail 是最早使用SMTP的郵件傳輸代理之一。到2001年至少有50個程序將SMTP實現為一個客戶端(消息的發送者)或一個服務器(消息的接收者)。一些其他的流行的SMTP服務器程序包括了Philip Hazel的exim, IBM 的Postfix, D. J. Bernstein的 Qmail ,以及 Microsoft Exchange Server 。

由於這個協議開始是基於純 ASCII 文本的,它在 二進製 文件上處理得並不好。諸如 MIME 的標準被開發來編碼二進製文件以使其通過SMTP來傳輸。今天,大多數SMTP服務器都支持8位MIME擴展,它使二進製文件的傳輸變得幾乎和純文本一樣簡單。

--參考 wiki 百科

POP(Post Office Protocol)郵局協議

是 TCP/IP 協議族中的一員,由RFC 1939定義。本協議主要用於支持使用 客戶端 遠程管理在 服務器 上的 電子郵件 。最新版本為 POP3 ,全名“Post Office Protocol - Version 3”,而提供了 SSL 加密的POP3協議被稱為 POP3S

--參考 wiki 百科

簡單來說,SMTP是發送郵件, POP3/IMAP管是接受郵件,相當於中轉站,將郵件發送到客戶端。SMTP 認證,簡單地說就是要求必須在提供了賬戶名和密碼之後才可以登錄 SMTP 服務器,這就使得那些垃圾郵件的散播者無可乘之機。

增加 SMTP 認證的目的是為了使用戶避免受到垃圾郵件的侵擾。SMTP service收到郵件後轉給負責接收郵件的POP3 service,POP3是把郵件下載到本地計算機,不與服務器同步。它規定怎樣將個人計算機連接到Internet的郵件服務器和下載電子郵件的電子協議。它是因特網電子郵件的第一個 離線 協議標準,POP3允許用戶從服務器上把郵件存儲到本地主機(即自己的計算機)上,同時刪除保存在郵件服務器上的郵件,而POP3服務器則是遵循POP3協議的接收郵件服務器,用來接收電子郵件的。

說到POP3也要說一下IMAP雖然這裏用不到,pop3是靜態,IMAP是動態。IMAP提供Webmail 與電子郵件客戶端之間的雙向通信,客戶端收取的郵件仍然保留在服務器上,同時在客戶端上的操作都會反饋到服務器上(如:刪除郵件,標記已讀等,服務器上的郵件也會做相應的動作。所以無論從瀏覽器登錄郵箱或者客戶端軟件登錄郵箱,看到的郵件以及狀態都是一致的。)。而POP3在客戶端的操作不會反饋到服務器上。

網易郵箱已經默認開啟 POP3/SMTP/IMAP 服務,方便您可以通過電腦客戶端軟件更好地收發郵件,但是客戶端的授權密碼需要自己手機開通,如何開通參見小弟的另一個小弟的另一個文章介紹獲取授權碼。

網易163相關服務信息

實現過程

當程序運行的時候,先對163郵箱發送一封自己構建的郵件,避免因上次自動化關機導致運行程序立刻關機。

用手機或其他設備對郵箱發送關閉電腦文字,郵箱讀取主題文字為關機命令,執行關閉電腦命令,完成操作。將其打包成windows下可執行文件,電腦運行。

另外可講sleep設置時間間斷縮小,來達到秒響應的效果。

設置參數

登錄郵箱獲取郵箱內容

執行關機命令

總結

衝動的想法構建了此項應用,為了好玩和方便自己,代碼寫的不夠pythonic,還希望你多多包涵。謝謝閱讀、本文轉載!

如有侵權請聯係小編刪除!

最後更新:2017-10-24 16:03:32

  上一篇:go Python GUI入門學習案例!這是最好玩的Python係列!附帶源碼!
  下一篇:go Life is short,you need python!