Python發(fā)郵件要裝什么模塊

在介紹具體的實現(xiàn)python發(fā)郵件的具體操作之前棒呛,我覺得有必要介紹下SMTP伴郁,更有助于理解python發(fā)郵件的實現(xiàn)原理沐序。SMTP協(xié)議屬于TCP/IP協(xié)議簇邑茄,即簡單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則姨蝴,由它來控制信件的中轉(zhuǎn)方式,python實現(xiàn)發(fā)郵件也是基于此基礎(chǔ)上進行封裝的肺缕。

1.python發(fā)郵件所需要的基礎(chǔ)包

python發(fā)送郵件需要用到python自帶的兩個模塊似扔,smtplib和email。直接import導(dǎo)入搓谆,無需下載炒辉。

python的smtplib提供了一種很方便的途徑發(fā)送電子郵件,它對smtp協(xié)議進行了簡單的封裝泉手。

2.smtplib的用法

smtplib用法相對來說很簡單黔寇,就是分為兩步。

創(chuàng)建SMTP的操作對象并連接smtp目標(biāo)服務(wù)器斩萌,可以是163缝裤、QQ等。

根據(jù)自己的賬號登錄目標(biāo)服務(wù)器(自己的郵箱地址和郵箱授權(quán)碼)

調(diào)用對象中的方法颊郎,發(fā)送郵件到目標(biāo)地址憋飞。

python與smtp服務(wù)器之間的具體交互的通用代碼:

import?smtplib

server?=?smtplib.SMTP(mailserver,?port)??#?發(fā)件人郵箱中的SMTP服務(wù)器,端口是25

server.login(sender,?passwd)??#?發(fā)件人郵箱賬號姆吭、郵箱授權(quán)碼

#?msg.as_string()中as_string()是將msg(MIMEText或MIMEMultipart對象)變?yōu)閟tr榛做。

server.sendmail(sender,?receive,?msg.as_string())??

server.quit()

具體的python連接目標(biāo)服務(wù)器的代碼如下:注:本文章用的是qq的smtp服務(wù)器。

常用郵箱的smtp服務(wù)器地址:

新浪郵箱:smtp.sina.com,搜狐郵箱:smtp.sohu.com检眯,qq郵箱:smtp.qq.com

sender_maile='80617252@qq.com'#?發(fā)送方的郵箱地址

sender_pass?=?'lsjdfsljdfk'#?郵箱提供的授權(quán)碼厘擂,可在第三方登錄,我這個是隨便打的锰瘸。

sftp_obj?=smtplib.SMTP('smtp.qq.com',?25)

sftp_obj.login(sender_mail,?sender_pass)

#三個參數(shù)分別是:發(fā)件人郵箱賬號刽严,收件人郵箱賬號,發(fā)送的郵件體

sftp_obj.sendmail(sender_mail,?receiver_mail,?msg_root.as_string())

sftp_obj.quit()

3.email模塊的詳細(xì)理解和使用

email模塊下的mime模塊下有常用的三個模塊避凝,三個模塊中有三個大類舞萄。其實就是下邊這三個了,說的很繞管削,下邊為導(dǎo)入方式鹏氧,一目了然。

from?email.mime.text?import?MIMEText

from?email.mime.image?import?MIMEImage

from?email.mime.multipart?import?MIMEMultipart

簡單說下他們的關(guān)系佩谣,如果構(gòu)造一個MIMEText對象,就表示一個文本郵件對象实蓬,如果構(gòu)造一個MIMEImage對象茸俭,就表示一個作為附件的圖片對象,要把多個對象組合起來安皱,就用MIMEMultipart對象调鬓,他代表的是整個郵件。這樣說應(yīng)該還不是很清晰酌伊,下邊就分開來說腾窝,最后會總的總結(jié),在最后邊就是完整的代碼(可以發(fā)送一切內(nèi)容的代碼)居砖。

A.MIMEText對象中有三個需要我們設(shè)置的參數(shù)虹脯,一個是正文內(nèi)容,一個是正文內(nèi)容的類型奏候,例如:”text/plain”和”text/html”循集,一個是正文內(nèi)容的編碼。

構(gòu)造普通文本:

text_info?=?'hello?world?'

text_sub?=?MIMEText(text_info,'plain',?'utf-8')

構(gòu)造超文本:

url?=?"https://blog.csdn.net/chinesepython"

html_info?=?"""

????<p>點擊以下鏈接蔗草,你會去向一個更大的世界</p>

????<p><a?href="%s">click?me</a></p>

????<p>i?am?very?glasses?foryou</p>

????"""?%?url

html_sub?=?MIMEText(html_info,?'html',?'utf-8')??

#?如果不加下邊這行代碼的話咒彤,上邊的文本是不會正常顯示的,會把超文本的內(nèi)容當(dāng)做文本顯示

html_sub["Content-Disposition"]?=?'attachment;?filename="csdn.html"'

構(gòu)造base64數(shù)據(jù)流咒精,用于發(fā)送文件的時候使用镶柱,構(gòu)造附件代碼:

txt_file?=?open(r'D:\python_files\files\hello_world.txt',?'rb').read()

txt?=?MIMEText(txt_file,?'base64',?'utf-8')

txt["Content-Type"]?=?'application/octet-stream'

#?命名發(fā)送的附件

txt.add_header('Content-Disposition',?'attachment',?filename='hello_world.txt')

B.MIMEImage對象中只需要把讀取的文件傳入就行。

構(gòu)造圖片:

image_file?=?open(r'D:\python_files\images\test.png',?'rb').read()

image?=?MIMEImage(image_file)

image.add_header('Content-ID',?'<image1>')

#?命名發(fā)送的圖片

image["Content-Disposition"]?=?'attachment;?filename="red_people.png"'

C.MIMEMultipart對象創(chuàng)建的類型有三種模叙,此模塊主要是通過attach方法把上邊構(gòu)造的內(nèi)容傳入到郵件的整體內(nèi)容中歇拆。

郵件類型為”multipart/alternative”的郵件正文中包括純文本正文(text/plain)和超文本正文(text/html)。

郵件類型為”multipart/related”的郵件正文中包括圖片,聲音等內(nèi)嵌資源查吊。

郵件類型為”multipart/mixed”的郵件包含附件谐区,圖片,文本等都可以添加逻卖,所以發(fā)的內(nèi)容多的話一般是用這個的宋列,選擇mixed類型,什么內(nèi)容都可以發(fā)评也。

本文轉(zhuǎn)自:https://www.py.cn/jishu/jichu/13596.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炼杖,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盗迟,更是在濱河造成了極大的恐慌坤邪,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件罚缕,死亡現(xiàn)場離奇詭異艇纺,居然都是意外死亡,警方通過查閱死者的電腦和手機邮弹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評論 3 399
  • 文/潘曉璐 我一進店門黔衡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人腌乡,你說我怎么就攤上這事盟劫。” “怎么了与纽?”我有些...
    開封第一講書人閱讀 168,561評論 0 360
  • 文/不壞的土叔 我叫張陵侣签,是天一觀的道長。 經(jīng)常有香客問我急迂,道長影所,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,782評論 1 298
  • 正文 為了忘掉前任僚碎,我火速辦了婚禮型檀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘听盖。我一直安慰自己胀溺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,798評論 6 397
  • 文/花漫 我一把揭開白布皆看。 她就那樣靜靜地躺著仓坞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腰吟。 梳的紋絲不亂的頭發(fā)上无埃,一...
    開封第一講書人閱讀 52,394評論 1 310
  • 那天徙瓶,我揣著相機與錄音,去河邊找鬼嫉称。 笑死侦镇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的织阅。 我是一名探鬼主播壳繁,決...
    沈念sama閱讀 40,952評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荔棉!你這毒婦竟也來了闹炉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評論 0 276
  • 序言:老撾萬榮一對情侶失蹤润樱,失蹤者是張志新(化名)和其女友劉穎渣触,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壹若,經(jīng)...
    沈念sama閱讀 46,409評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡嗅钻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,483評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了店展。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片养篓。...
    茶點故事閱讀 40,615評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖壁查,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剔应,我是刑警寧澤睡腿,帶...
    沈念sama閱讀 36,303評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站峻贮,受9級特大地震影響席怪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纤控,卻給世界環(huán)境...
    茶點故事閱讀 41,979評論 3 334
  • 文/蒙蒙 一挂捻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧船万,春花似錦刻撒、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舱呻,卻和暖如春醋火,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評論 1 272
  • 我被黑心中介騙來泰國打工芥驳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留柿冲,地道東北人。 一個月前我還...
    沈念sama閱讀 49,041評論 3 377
  • 正文 我出身青樓兆旬,卻偏偏與公主長得像假抄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子爵憎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,630評論 2 359

推薦閱讀更多精彩內(nèi)容