大家好,我是辣條。
前言

開學沒多久,事又多正愁缺寫博客的素材,這不馬上就來了,憨憨室友又要整活 ,看在友(紅)情(包)的份上必須幫忙。
我起初的想法是通過郵箱發(fā)送表白代碼指令,打包成執(zhí)行文件,但是不留室友的署名,按照他的想法先暗示一波探探底嘛,但是想先測測代碼,我就先發(fā)了一個自動關機指令試試,沒想到竟然直接執(zhí)行了,平常敲代碼總出bug,這下竟然順利了,更沒想到事情出現了驚天逆轉..
【別問我當時為什么不拿別的電腦試試,而直接拿班花試試了,我他喵的根本沒想到我寫的代碼能一次成功啊...】
啊這...我可不是這樣想的啊,我是想發(fā)表白的代碼執(zhí)行指令的啊,沒想到造成這樣的烏龍,雖然后面我隨便用cmd給電腦跑個目錄,她就當解決電腦問題了,然后和班花一起和食堂吃飯了,順便聊聊人生聊聊興趣愛好之類的。
等等...我好像忘了我室友了..溜了溜了...
實現目標
通過郵箱發(fā)送指令,代碼不斷讀取郵箱的郵件,查看郵件是否為代碼指令,為代碼指令則運行(本文章只用于學習交流,還望各位讀者大大之后不要把辣條暴露了 狗頭保命.jpg)

效果展示

工具使用
開發(fā)工具:pycharm 開發(fā)環(huán)境:python3.7, Windows10 使用工具:poplib,email,subprocess
項目思路解析
開通163郵箱的授權碼
打開163郵箱點擊設置,點擊pop3


打開兩項服務


開通第三方授權碼,這個授權碼很重要,Python操作應用郵箱都需要授權碼,跟你登錄時需要密碼是一樣的,第三方授權碼


代碼思路
代碼為兩個模塊,一個模塊用來鏈接接郵箱,根據郵件標題實現任務,控制讀取郵箱,一個文件用來執(zhí)行命令任務(命令是自己確定的想要電腦執(zhí)行啥任務)
控制郵箱模塊
1.設置連接網址服務器,獲取pop3協(xié)議的郵件讀取對象
2.輸入郵件地址與郵件登錄密碼
3.讀取郵件信息(郵件總數,郵件尺寸)
4.獲取最新的一封郵件
5.解碼郵件信息,將解碼后的郵件信息存入列表
6.將解碼后的郵件內容拼接為字符串
7.獲取郵件主題
import poplib
import email
from email.header import decode_header
# 獲取郵件標題
def get_email_subject(addr, password):
read = poplib.POP3('pop.163.com', timeout=3600)
read.user(addr) # 163郵箱用戶名
read.pass_(password) # 163郵箱設置中的客戶端授權密碼
total_num, total_size = read.stat()
top_email = read.top(total_num, 1)
tmp = []
for s in top_email[1]:
tmp.append(s.decode())
# 將解碼后的郵件內容拼接為字符串
email_str = '\n'.join(tmp)
# print(email_str)
# 將字符串類型解析為Message類型
message = email.message_from_string(email_str)
# 獲取郵件主題
subject_str = message['subject']
subject = decode_header(subject_str)
content = subject[0][0]
enc_type = subject[0][1]
if enc_type:
subject_decode = content.decode(enc_type)
else:
subject_decode = content
return subject_decode, read, total_num

操控電腦文件
首先自己設定需要執(zhí)行的命令和任務(命令任務可自行添加)
<pre>command_set = {
"重啟": "shutdown -r -t 600",
"關機": "shutdown -s -t 600",
"love": "love",
"惡搞": "惡搞",
"鎖屏": "鎖屏",
}</pre>
主文件不斷的讀取郵箱,執(zhí)行代碼為死循環(huán),設定延時每10秒鐘讀取一次 利用剛剛封裝打包的工具獲取到第一封郵件的標題 判斷獲取到的標題是否存在于我們設定的命令里面,如果命令是我們設定的就運行相對命令,執(zhí)行完之后要刪除當前文件,避免重復執(zhí)行
簡易源碼分享
當你能看到這里的時候說明我文章審核通過了。。。最先審核沒通過,說我腳本涉嫌控制電腦違法違規(guī),經過我再三的溝通之下,完整代碼刪除了,希望能通過審核。
結尾
后面才想起我的憨憨室友,這波操作雖然沒成功,好像我也沒虧啊,白嫖了一頓飯,看來只能再想別的辦法了,直接約會表白或者死纏爛打啊,總搞地下這一套。
不過總感覺怪怪的,為啥總找我修電腦,好像吃飯也是她提的,不太對勁是非之地走為上計,牽扯太大,這年頭正經人誰談戀愛,搞錢才是最重要的,暑假小存一筆...

PS:動不動發(fā)紅包是這貨的習慣,他是個隱形小富二代,但是對自己卻沒信心...紅包也退還了,純粹玩鬧,提醒大家不要利用技術干違法違紀或者非法獲利的事情,僅供大家學習交流??!
系列推薦:【自上而下按時間順序排列】
我用Python修改了班花的開機密碼,重新登錄后竟然發(fā)現了她的秘密!