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

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

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()

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 双龙高h | 欧美涩区| 44444色视频在线观看 | 精品视频在线播放 | 高h喷水荡肉爽文np肉色文 | 欧美午夜精品久久久久久黑人 | 亚洲高清影院 | 日本一卡二卡3卡四卡无卡网址 | 欧美在线视频免费播放 | 婷婷日韩 | 96萝莉| 国产免费看片 | 欧美成人精品福利网站 | www.日本视频| 日韩一级精品视频在线观看 | 蜜桃88av| 国产亚洲精品综合在线网址 | 黄动漫车车好快的车车a | 欧美激情综合 | 精品无人区麻豆乱码1区2 | 精品国产一区二区三区久久久蜜臀 | 亚洲2017天堂色无码 | 韩国理论片最新第一页 | 国产精品视频二区不卡 | 国产精品刺激好大好爽视频 | 动漫人物差差插曲漫画 | 我的青梅竹马是消防员2季未增删免费 | 色综合天天娱乐综合网 | 星空无限传媒xk8046 | 国产亚洲精品一区二区在线播放 | 91午夜视频 | 日韩欧美亚洲一区精选 | 国产免费看黄的私人影院 | 高清欧美不卡一区二区三区 | chinese高中生gay男同 | 国产一级持黄大片99久久 | 激情文学综合网 | 美女脱得一二净无内裤全身的照片 | 婷婷麻豆 | 男同gay作爰视频网站 | 手机看片1024国产 |