python
傳送電子郵件
訪問**http協議,傳送郵件要使用smtp。
smtp(****** mail transfer protocol)即簡單郵件傳輸協議,它是一組用於由源位址到目的位址傳送郵件的規則,由它來控制信件的中轉方式。
python的smtplib提供了一種很方便的途徑傳送電子郵件。它對smtp協議進行了簡單的封裝
python對smtp支援有smtplib和email兩個模組,email負責構造郵件,smtplib負責傳送郵件。
from smtplib import smtp
from email.header import header # 如果包含中文,需要通過header物件進行編碼
from email.mime.text import mimetext #文字郵件物件
def main():
# 請自行修改下面的郵件傳送者和接收者
sender = '賬號'
password = '密碼'
receivers = ['小燕', '曉麗'] #可以傳給多人 用list
message = mimetext('用python傳送郵件的示例**.', 'plain', 'utf-8')
#構造mimetext物件時,第乙個引數就是郵件正文,第二個引數是mime的subtype,傳入'plain',最終的mime就是'text/plain',第三個引數用utf-8編碼保證多語言相容性
#text/html的意思是將檔案的content-type設定為text/html的形式,瀏覽器在獲取到這種檔案時會自動呼叫html的解析器對檔案進行相應的處理。
#text/plain的意思是將檔案設定為純文字的形式,瀏覽器在獲取到這種檔案時並不會對其進行處理。
message['from'] = header('發件人', 'utf-8')
message['to'] =header('收件人', 'utf-8')
message['subject'] = header('郵件', 'utf-8')
#必須把from、to和subject新增到mimetext中,才是一封完整的郵件
smtper = smtp('smtp.126.com') # smtp伺服器
smtper.login(sender, password) # login('賬號','密碼')方法用來登入smtp伺服器
smtper.sendmail(sender, receivers, message.as_string()) #.as_string()轉為字串
print('郵件傳送完成!')
if __name__ == '__main__':
main()
如果要傳送帶有附件的郵件
''''''
message
+- mimebase
+- mimemultipart
+- mimenonmultipart
+- mimemessage
+- mimetext
+- mimeimage
''''''
from smtplib import smtp #smtp
from email.header import header #格式化中文
from email.mime.text import mimetext #文字
from email.mime.image import mimeimage #
from email.mime.multipart import mimemultipart #附件
import urllib
def main():
# 建立乙個帶附件的郵件訊息物件
message = mimemultipart()
# 建立文字內容
text_content = mimetext('附件中有本月資料請查收', 'plain', 'utf-8')
message['subject'] = header('本月資料', 'utf-8')
# 將文字內容新增到郵件訊息物件中
message.attach(text_content)
# 讀取檔案並將檔案作為附件新增到郵件訊息物件中
with open('檔案路徑及檔名', 'rb') as f:
txt = mimetext(f.read(), 'base64', 'utf-8')
txt['content-type'] = 'text/plain'
txt['content-disposition'] = 'attachment; filename=test.txt' # 這裡的filename可以任意寫,寫什麼名字,郵件中顯示什麼名字
message.attach(txt)
# 讀取檔案並將檔案作為附件新增到郵件訊息物件中 新增附件二
with open('路徑/資料.xlsx', 'rb') as f:
xls = mimetext(f.read(), 'base64', 'utf-8')
xls['content-disposition'] = 'attachment; filename=month-data.xlsx'
message.attach(xls)
# 建立smtp物件
smtper = smtp('smtp.126.com')
# 開啟安全連線
# smtper.starttls()
sender = '賬號'
password = '密碼'
receivers = ['收件人1','收件人2'] #list
# 登入到smtp伺服器
smtper.login(sender, password)
# 傳送郵件
smtper.sendmail(sender, receivers, message.as_string())
# 與郵件伺服器斷開連線
smtper.quit()
print('傳送完成!')
if __name__ == '__main__':
main()
構造乙個郵件物件就是乙個messag物件,如果構造乙個mimetext物件,就表示乙個文字郵件物件,如果構造乙個mimeimage物件,就表示乙個作為附件的,要把多個物件組合起來,就用mimemultipart物件,而mimebase可以表示任何物件。 python學習 第十四天
在下這廂有禮了 python正規表示式 python通過re模組提供對正規表示式的支援。使用re的一般步驟是先將正規表示式的字串形式編譯為pattern例項,然後使用pattern例項處理文字並獲得匹配結果 乙個match例項 最後使match例項獲得資訊,進行其他的操作。encoding utf ...
python學習第十四天
1 遞迴函式 自己呼叫自己的函式 遞 去歸 回 一去一回叫做遞迴 遞迴函式有回的過程,有兩種情況可以觸發 1.當最後一層函式全部執行結束的時候,有觸底 的過程 回馬槍 回到上層函式空間的呼叫處 2.遇到return返回值,直接返回上層空間的呼叫處 遞迴函式在執行的時候,需要記憶體開闢空間才可以,這個...
Python 第十四天
物件導向程式設計 object oriented programming,簡稱 oop 是一種封裝 的方法。封裝,其實就是隱藏實現功能的具體 僅留給使用者使用的介面,就好像使用計算機,使用者只需要使用鍵盤 滑鼠就可以實現一些功能,而根本不需要知道其內部是如何工作的。python 中,建立乙個類使用c...