日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python发邮件有什么意思_python发邮件要装什么

發布時間:2024/4/14 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python发邮件有什么意思_python发邮件要装什么 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在介紹具體的實現python發郵件的具體操作之前,我覺得有必要介紹下SMTP,更有助于理解python發郵件的實現原理。SMTP協議屬于TCP/IP協議簇,即簡單郵件傳輸協議,它是一組用于由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式,python實現發郵件也是基于此基礎上進行封裝的。

1.python發郵件所需要的基礎包

python發送郵件需要用到python自帶的兩個模塊,smtplib和email。直接import導入,無需下載。

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

2.smtplib的用法

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

創建SMTP的操作對象并連接smtp目標服務器,可以是163、QQ等。

根據自己的賬號登錄目標服務器(自己的郵箱地址和郵箱授權碼)

調用對象中的方法,發送郵件到目標地址。

python與smtp服務器之間的具體交互的通用代碼:import?smtplib

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

server.login(sender,?passwd)??#?發件人郵箱賬號、郵箱授權碼

#?msg.as_string()中as_string()是將msg(MIMEText或MIMEMultipart對象)變為str。

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

server.quit()

具體的python連接目標服務器的代碼如下:注:本文章用的是qq的smtp服務器。

常用郵箱的smtp服務器地址:

新浪郵箱:smtp.sina.com,搜狐郵箱:smtp.sohu.com,qq郵箱:smtp.qq.comsender_maile='80617252@qq.com'?#?發送方的郵箱地址

sender_pass?=?'lsjdfsljdfk'?#?郵箱提供的授權碼,可在第三方登錄,我這個是隨便打的。

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

sftp_obj.login(sender_mail,?sender_pass)

#三個參數分別是:發件人郵箱賬號,收件人郵箱賬號,發送的郵件體

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

sftp_obj.quit()

3.email模塊的詳細理解和使用

email模塊下的mime模塊下有常用的三個模塊,三個模塊中有三個大類。其實就是下邊這三個了,說的很繞,下邊為導入方式,一目了然。from?email.mime.text?import?MIMEText

from?email.mime.image?import?MIMEImage

from?email.mime.multipart?import?MIMEMultipart

簡單說下他們的關系,如果構造一個MIMEText對象,就表示一個文本郵件對象,如果構造一個MIMEImage對象,就表示一個作為附件的圖片對象,要把多個對象組合起來,就用MIMEMultipart對象,他代表的是整個郵件。這樣說應該還不是很清晰,下邊就分開來說,最后會總的總結,在最后邊就是完整的代碼(可以發送一切內容的代碼)。

A.MIMEText對象中有三個需要我們設置的參數,一個是正文內容,一個是正文內容的類型,例如:”text/plain”和”text/html”,一個是正文內容的編碼。

構造普通文本:text_info?=?'hello?world?'

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

構造超文本:url?=?"https://blog.csdn.net/chinesepython"

html_info?=?"""

點擊以下鏈接,你會去向一個更大的世界

click?me

i?am?very?glasses?for?you

"""?%?url

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

#?如果不加下邊這行代碼的話,上邊的文本是不會正常顯示的,會把超文本的內容當做文本顯示

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

構造base64數據流,用于發送文件的時候使用,構造附件代碼: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'

#?命名發送的附件

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

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

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

image?=?MIMEImage(image_file)

image.add_header('Content-ID',?'')

#?命名發送的圖片

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

C.MIMEMultipart對象創建的類型有三種,此模塊主要是通過attach方法把上邊構造的內容傳入到郵件的整體內容中。

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

郵件類型為”multipart/related”的郵件正文中包括圖片,聲音等內嵌資源。

郵件類型為”multipart/mixed”的郵件包含附件,圖片,文本等都可以添加,所以發的內容多的話一般是用這個的,選擇mixed類型,什么內容都可以發。

總結

以上是生活随笔為你收集整理的python发邮件有什么意思_python发邮件要装什么的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。