Python真是萬能語言啊,還能發郵件,,,我也是最近剛知道!那么問題來了,用Python發郵件有什么用啊?
1.可以和爬蟲代碼結合一下、譬如查12306、查攜程機票時可以設定查詢到自動發郵件提醒
2.程式猿們可以利用Python發郵件監控程式的運行,譬如有bug報錯了,趕緊發個郵件提醒你,回來公司加班!
3.搜集網上行業資訊的,搜集到一堆郵箱,可以群發啊,做廣告啊~(當然這樣不太好)
4.譬如我可以寫一個暖心的小程式,讓Python自動在惡劣天氣,提醒親朋好友注意加衣服,在生日時發送生日祝福,,,,,,
果然Python大法好啊~
這里免費送大家一套2020最新python入門到高級專案實戰視頻教程,可以去小編的Python交流.扣扣.裙 :879151479,還可以跟行業大牛交流討教!
本次,我們發郵件用到的Python庫是smtplib和email,簡單來說,smtplib庫主要是用于負責和郵件服務器進行通訊,email庫則主要用于規定撰寫郵件的頭、主體、內容、附件等,
發郵件之前我們需要用Python登錄smtp服務器,這樣才能有發送權限,所以,我們需要去郵箱手動開啟smtp服務,然后記住服務器授權碼(授權碼意思是,你可以不用我的網頁郵箱或者郵箱app登錄,你可以用郵箱賬號+授權碼在后臺來獲取郵箱服務器的內容)
由于本次我們用QQ郵箱發送,你也可以用網易郵箱或者其他郵箱發送,原理都是類似~
如何開啟QQ郵箱smtp服務器和獲取授權碼:??
很多場合都會用到郵箱授權碼進行郵件的收取,現在講一下如何QQ郵箱的授權碼獲取方式,網易郵箱的也差不多哦~
工具/原料
- 電腦版的QQ郵箱
方法/步驟
登錄電腦版QQ郵箱,選擇最上方的“設定”,
如圖選擇“賬戶”,切換到賬戶詳情頁面,
在賬戶頁面往下拉,可以看到pop3設定,選擇“開啟”,
按照彈出的視窗提示操作進行密保驗證,有多種方式可以驗證,比如手機令牌等,推薦使用短信驗證,
按照短信驗證的提示發送短信,發送成功后直接點擊“我已發送”,
彈出的提示中直接顯示16位的授權碼,可以復制下來,或者是記下來,千萬不要記錯了,然后點擊“確定”,
下方的收取選項一般是默認30天的,點擊下拉箭頭,選擇“全部”,并點擊頁面最下方的保存更改,千萬別忘了點擊保存,不然之前做的都白費了!
最后就是到需要授權碼的那些地方輸入付訓得的16位授權碼就可以了,
END
注意事項
- 操作完別忘了保存,
- 授權碼不要記錯了,
- 收取選項改為“全部”,不然無法匯入所有的郵件,
獲取好服務器授權碼后,我們就可以寫代碼了,本次發送一個簡單的文字郵件,然后添加一張可愛豬的圖片作為附件:
程式運行程序:
程式運行結果:
代碼如下:
import smtplib
from email import encoders
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
#sender是郵件發送人郵箱,passWord是服務器授權碼,mail_host是服務器地址(這里是QQsmtp服務器)
sender = '[email protected]'#
passWord = 'xxx'
mail_host = 'smtp.qq.com'
#receivers是郵件接收人,用串列保存,可以添加多個
receivers = ['[email protected]','[email protected]']
#設定email資訊
msg = MIMEMultipart()
#郵件主題
msg['Subject'] = input(f"{'請輸入郵件主題:'}")
#發送方資訊
msg['From'] = sender
#郵件正文是MIMEText:
msg_content = input(f"{'請輸入郵件主內容:'}")
msg.attach(MIMEText(msg_content, 'plain', 'utf-8'))
# 添加附件就是加上一個MIMEBase,從本地讀取一個圖片:
with open('/Users/xxx/1.jpg', 'rb') as f:
# 設定附件的MIME和檔案名,這里是jpg型別,可以換png或其他型別:
mime = MIMEBase('image', 'jpg', filename='Lyon.png')
# 加上必要的頭資訊:
mime.add_header('Content-Disposition', 'attachment', filename='Lyon.png')
mime.add_header('Content-ID', '<0>')
mime.add_header('X-Attachment-Id', '0')
# 把附件的內容讀進來:
mime.set_payload(f.read())
# 用Base64編碼:
encoders.encode_base64(mime)
# 添加到MIMEMultipart:
msg.attach(mime)
#登錄并發送郵件
try:
#QQsmtp服務器的埠號為465或587
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
s.set_debuglevel(1)
s.login(sender,passWord)
#給receivers串列中的聯系人逐個發送郵件
for i in range(len(receivers)):
to = receivers[i]
msg['To'] = to
s.sendmail(sender,to,msg.as_string())
print('Success!')
s.quit()
print ("All emails have been sent over!")
except smtplib.SMTPException as e:
print ("Falied,%s",e)
這里免費送大家一套2020最新python入門到高級專案實戰視頻教程,可以去小編的Python交流.扣扣.裙 :879151479,還可以跟行業大牛交流討教!
本文的文字及圖片來源于網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/134896.html
標籤:其他
上一篇:Jav代碼塊與構造器方法執行順序
