您好,登錄后才能下訂單哦!
為什么會有寫這個程序的想法呢?
最初的想法是寫一個可以用電腦前置攝像頭拍照的程序,在舍友使用你電腦的時候,不經意間獲取到一大堆奇葩舍友的表情包。
然后我又突發奇想,要不搞個開機啟動吧,這樣我就可以看到是誰開啟了我的電腦啦。
然后,突(nao)發(dong)奇(da)想(kai)的我又想到萬一我電腦不在身邊怎么辦?要不再加個郵件發送機制吧,開機拍到照片再郵件發送給我?哈哈
deepin 15.9
好看好用的國產linux系統
python 2.7或者3.6
解釋器,哪個版本都可以,我選擇3.6
smtplib
用來發送郵件
用來構造郵件內容的庫
opencv
用來調取攝像頭拍攝照片
time
獲取開機以及拍照的時間
os
判斷網絡連接
獲取腳本路徑
sys
判斷網絡是否聯通
1.用opencv庫調用攝像頭拍照保存為文件。
2.檢查網絡是否連接,未連接則圖片保存到本地。
3.用email庫構造郵件內容,把保存的照片以附件的形式插入到郵件內容中。
4.用smtplib庫發送郵件給指定郵件接收者。
5.實現腳本開機自啟動。
首先當然是安裝opencv啦。
其他的email、smtplib、sys、os、time為python默認安裝的包,我們只需要導入即可。
如果是python3.6安裝opencv就在終端輸入:
pip3install?opencv-python
如果是python2.7安裝opencv,就在終端輸入:
pipinstall?opencv-python
安裝完成后,我們導入必要的包。
各個包的作用在前文已經講過,不再多言。
email 我們只需要部分功能,所以選擇性導入
將smtp服務器,登錄郵箱賬號及密碼,收件人,腳本路徑等設置為全局變量。方便以后程序移植與修改。
注:很多郵箱為了安全起見,不會使用真實的登錄密碼,而是要使用授權碼,在QQ郵箱的設置里面可以找到生成授權碼選項。
判斷網絡聯通狀態的方法很多,我采用很簡單很直接的ping。
如果網絡連接正常,則拍照發郵件。
如果網絡未連接,等待十秒鐘再次測試,如果等待次數超過設置的最大次數,程序退出。
首先要寫一個開機自啟腳本,文件名為:autoStart.sh
腳本內容為
然后 在/etc/rc.local最后添加一行
./home/projects/sendemail/autoStart.sh
大功告成。
代碼都寫好了,重啟系統就可以收到郵件啦。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。