學習python 第十四天

2021-09-23 20:49:59 字數 3200 閱讀 3578

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...