一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 用Python實現一個簡單的能夠發送帶附件的郵件程序的教程

用Python實現一個簡單的能夠發送帶附件的郵件程序的教程

2020-06-01 10:39腳本之家 Python

這篇文章主要介紹了用Python實現一個簡單的能夠發送帶附件的郵件程序的教程,用MIMEApplication模塊來發送各種類型的文件,需要的朋友可以參考下

基本思路就是,使用MIMEMultipart來標示這個郵件是多個部分組成的,然后attach各個部分。如果是附件,則add_header加入附件的聲明。
在python中,MIME的這些對象的繼承關系如下。
MIMEBase
    |-- MIMENonMultipart
        |-- MIMEApplication
        |-- MIMEAudio
        |-- MIMEImage
        |-- MIMEMessage
        |-- MIMEText
    |-- MIMEMultipart
一般來說,不會用到MIMEBase,而是直接使用它的繼承類。MIMEMultipart有attach方法,而MIMENonMultipart沒有,只能被attach。
MIME有很多種類型,這個略麻煩,如果附件是圖片格式,我要用MIMEImage,如果是音頻,要用MIMEAudio,如果是word、excel,我都不知道該用哪種MIME類型了,得上google去查。
最懶的方法就是,不管什么類型的附件,都用MIMEApplication,MIMEApplication默認子類型是application/octet-stream。
application/octet-stream表明“這是個二進制的文件,希望你們那邊知道怎么處理”,然后客戶端,比如qq郵箱,收到這個聲明后,會根據文件擴展名來猜測。

下面上代碼。
假設當前目錄下有foo.xlsx/foo.jpg/foo.pdf/foo.mp3這4個文件。
 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
_pwd = "***"
  
#如名字所示Multipart就是分多個部分
msg = MIMEMultipart()
msg["Subject"] = "don't panic"
msg["From"= _user
msg["To"]   = _to
  
#---這是文字部分---
part = MIMEText("喬裝打扮,不擇手段")
msg.attach(part)
  
#---這是附件部分---
#xlsx類型附件
part = MIMEApplication(open('foo.xlsx','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.xlsx")
msg.attach(part)
  
#jpg類型附件
part = MIMEApplication(open('foo.jpg','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.jpg")
msg.attach(part)
  
#pdf類型附件
part = MIMEApplication(open('foo.pdf','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
msg.attach(part)
  
#mp3類型附件
part = MIMEApplication(open('foo.mp3','rb').read())
part.add_header('Content-Disposition', 'attachment', filename="foo.mp3")
msg.attach(part)
  
s = smtplib.SMTP("smtp.qq.com", timeout=30)#連接smtp郵件服務器,端口默認是25
s.login(_user, _pwd)#登陸服務器
s.sendmail(_user, _to, msg.as_string())#發送郵件
s.close()

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91色porny| 久久re视频这里精品一本到99 | 奇米影视7777 | 久久精品一区二区三区资源网 | 好姑娘在线完整版视频 | 日本xxxx18vr69 | 国产午夜免费不卡精品理论片 | 亚洲国产成人久久精品hezyo | 日韩国产欧美视频 | 236z最新伦理 | 美女脱一净二净不带胸罩 | 美女张开腿黄网站免费精品动漫 | 男人猛进女人屁股免费 | 俄罗斯图书馆无打码久久 | 国产麻豆91网在线看 | 青草视频免费观看在线观看 | 精品欧美一区二区三区久久久 | 成人精品第一区二区三区 | 欧美va在线播放免费观看 | haodiaocao几万部精彩视频 | 国产亚洲人成网站在线观看不卡 | xxxx成人| 国产一卡二卡四卡免费 | 日本免费高清在线 | 操出水视频| 我的奶头被客人吸的又肿又红 | 国产精品视频在这里有精品 | 国内精品哆啪啪 | 婷婷丁香视频 | 欧美日韩导航 | 91制片厂制作果冻传媒123 | а天堂中文最新版在线官网视频 | 男人肌肌捅女人肌肌 | 日本高清全集免费观看 | 性派对videos18party| segou视频在线观看 | 国产成人精品视频频 | 男人的天堂comwww | 1769在线观看 | 日韩欧美高清一区 | 亚洲美女aⅴ久久久91 |