為什么會(huì)有寫(xiě)這個(gè)程序的想法呢?
創(chuàng)新互聯(lián)建站主營(yíng)管城網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app軟件開(kāi)發(fā)公司,管城h5成都微信小程序搭建,管城網(wǎng)站營(yíng)銷推廣歡迎管城等地區(qū)企業(yè)咨詢
最初的想法是寫(xiě)一個(gè)可以用電腦前置攝像頭拍照的程序,在舍友使用你電腦的時(shí)候,不經(jīng)意間獲取到一大堆奇葩舍友的表情包。
然后我又突發(fā)奇想,要不搞個(gè)開(kāi)機(jī)啟動(dòng)吧,這樣我就可以看到是誰(shuí)開(kāi)啟了我的電腦啦。
然后,突(nao)發(fā)(dong)奇(da)想(kai)的我又想到萬(wàn)一我電腦不在身邊怎么辦?要不再加個(gè)郵件發(fā)送機(jī)制吧,開(kāi)機(jī)拍到照片再郵件發(fā)送給我?哈哈
deepin 15.9
好看好用的國(guó)產(chǎn)linux系統(tǒng)
python 2.7或者3.6
解釋器,哪個(gè)版本都可以,我選擇3.6
smtplib
用來(lái)發(fā)送郵件
用來(lái)構(gòu)造郵件內(nèi)容的庫(kù)
opencv
用來(lái)調(diào)取攝像頭拍攝照片
time
獲取開(kāi)機(jī)以及拍照的時(shí)間
os
判斷網(wǎng)絡(luò)連接
獲取腳本路徑
sys
判斷網(wǎng)絡(luò)是否聯(lián)通
1.用opencv庫(kù)調(diào)用攝像頭拍照保存為文件。
2.檢查網(wǎng)絡(luò)是否連接,未連接則圖片保存到本地。
3.用email庫(kù)構(gòu)造郵件內(nèi)容,把保存的照片以附件的形式插入到郵件內(nèi)容中。
4.用smtplib庫(kù)發(fā)送郵件給指定郵件接收者。
5.實(shí)現(xiàn)腳本開(kāi)機(jī)自啟動(dòng)。
首先當(dāng)然是安裝opencv啦。
其他的email、smtplib、sys、os、time為python默認(rèn)安裝的包,我們只需要導(dǎo)入即可。
如果是python3.6安裝opencv就在終端輸入:
pip3install?opencv-python
如果是python2.7安裝opencv,就在終端輸入:
pipinstall?opencv-python
安裝完成后,我們導(dǎo)入必要的包。
各個(gè)包的作用在前文已經(jīng)講過(guò),不再多言。
email 我們只需要部分功能,所以選擇性導(dǎo)入
將smtp服務(wù)器,登錄郵箱賬號(hào)及密碼,收件人,腳本路徑等設(shè)置為全局變量。方便以后程序移植與修改。
注:很多郵箱為了安全起見(jiàn),不會(huì)使用真實(shí)的登錄密碼,而是要使用授權(quán)碼,在QQ郵箱的設(shè)置里面可以找到生成授權(quán)碼選項(xiàng)。
判斷網(wǎng)絡(luò)聯(lián)通狀態(tài)的方法很多,我采用很簡(jiǎn)單很直接的ping。
如果網(wǎng)絡(luò)連接正常,則拍照發(fā)郵件。
如果網(wǎng)絡(luò)未連接,等待十秒鐘再次測(cè)試,如果等待次數(shù)超過(guò)設(shè)置的最大次數(shù),程序退出。
首先要寫(xiě)一個(gè)開(kāi)機(jī)自啟腳本,文件名為:autoStart.sh
腳本內(nèi)容為
然后 在/etc/rc.local最后添加一行
./home/projects/sendemail/autoStart.sh
大功告成。
代碼都寫(xiě)好了,重啟系統(tǒng)就可以收到郵件啦。