python安装email模块_Python使用SMTP模块、email模块发送邮件
一、smtplib模塊:
主要通過(guò)SMTP類(lèi)與郵件系統(tǒng)進(jìn)行交互。使用方法如下:
1.實(shí)例化一個(gè)SMTP對(duì)象:
s = smtplib.SMTP(郵件服務(wù)地址,端口號(hào))
s = smtplib.SMTP_SSL(郵件服務(wù)地址,端口號(hào))
2.登陸郵件,權(quán)限驗(yàn)證:
s.login(用戶名,密碼)
3.發(fā)送郵件:
s.sendmail(發(fā)件人郵箱,收件人郵箱,發(fā)送內(nèi)容)
4.斷開(kāi)連接:
s.close()
二、email模塊:
email模塊:支持發(fā)送的郵件內(nèi)容為純文本、HTML內(nèi)容、圖片、附件。email模塊中有幾大類(lèi)來(lái)針對(duì)不同的郵件內(nèi)容形式,常用如下:
MIMEText:(MIME媒體類(lèi)型)內(nèi)容形式為純文本、HTML頁(yè)面。
MIMEImage:內(nèi)容形式為圖片。
MIMEMultupart:多形式組合,可包含文本和附件。
每一類(lèi)對(duì)應(yīng)的導(dǎo)入方式:
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
三、MIMEText:
MIMEText(msg,type,chartset)
msg:文本內(nèi)容
type:文本類(lèi)型默認(rèn)為plain(純文本)
發(fā)送HTML格式的時(shí)候,修改為html,但同時(shí)要求msg的內(nèi)容也是html的格式。
chartset:文本編碼,中文為“utf-8”
# 構(gòu)造TEXT格式的消息
msg = MIMEText("hello.text","plain","utf-8")
msg["Subject"] = "xxxxx"
msg["From"] = "xxxx"
msg["To"] = "xxxx"
#發(fā)送以上構(gòu)造的郵件內(nèi)容要使用as_string將構(gòu)造的郵件內(nèi)容轉(zhuǎn)換為string形式。
s.sendmail("xxx","xxx",msg.as_string)
四、MIMEImage、MIMEMultipart:
msg = MIMEMultipart()
#實(shí)例化一個(gè)文本對(duì)象
msg_sub = MIMEText("hello.text","plain","utf-8")
#將text消息添加到MIMEMultipart中,作為郵件正文。
msg.attach(msg_sub)
#圖片作為附件
import os
img_datas = open(os.getcwd()+ "/reports/xxxx.png","rb").read()
msg_img = MIMEImage(img_data)
msg_img.add_header('Content-Disposition','attachment', filename = "xxxx.png"?)
msg_img.add_header('Content-ID','<0>')
#將圖片添加到MIMEMultiplart中,作為附件發(fā)送。
msg.attach(mag_img)
源代碼如下:
發(fā)送文本郵件:
1 importsmtplib2 from email.mime.text importMIMEText3
4 sender = 'xxxx@qq.com' #發(fā)送人郵箱
5 passwd = 'lkugmgywydhfff' #發(fā)送人郵箱授權(quán)碼
6 receivers = 'xxxx@qq.com' #收件人郵箱
7
8 subject = 'python發(fā)郵件測(cè)試' #主題
9 content = '這是我使用python smtplib模塊和email模塊自動(dòng)發(fā)送的郵件' #正文
10
11 msg = MIMEText(content,'plain','utf-8')12 msg['Subject'] =subject13 msg['From'] =sender14 msg['TO'] =receivers15
16 try:17 s = smtplib.SMTP_SSL('smtp.qq.com',465)18 s.login(sender,passwd)19 s.sendmail(sender,receivers,msg.as_string())20 print('發(fā)送成功')21
22 exceptException:23 print('發(fā)送失敗')
發(fā)送HTML郵件:
1 importsmtplib2 from email.mime.text importMIMEText3 from email.header importHeader4
5 sender = 'xxxx@qq.com' #發(fā)件郵箱
6 passwd = 'lkugmgywydhfff' #發(fā)送人郵箱授權(quán)碼
7 receivers = 'xxxx@qq.com' #收件郵箱
8
9 subject = 'python發(fā)郵Html郵件測(cè)試' #主題
10
11 content = """#內(nèi)容,HTML格式12
Python 郵件發(fā)送測(cè)試...
13這是一個(gè)鏈接
14 """15
16 msg = MIMEText(content,'html','utf-8')17 #msg['Subject'] = subject
18 msg['Subject'] = Header(subject,'utf-8')19 #msg['From'] = sender
20 msg['From'] = Header('大傻子','utf-8')21 #msg['To'] = receivers
22 msg['To'] = Header('二愣子','utf-8')23 try:24 s = smtplib.SMTP_SSL('smtp.qq.com',465)25 s.login(sender,passwd)26 s.sendmail(sender,receivers,msg.as_string())27 print('Send Success')28
29 except:30 print('Send Failure')
發(fā)送圖片郵件:
1 importsmtplib2 from email.mime.image importMIMEImage3 from email.mime.text importMIMEText4 from email.mime.multipart importMIMEMultipart5
6 sender = 'xxxx@qq.com'
7 passwd = 'lkugmgywydhfff'
8 receivers = 'xxxx@qq.com'
9 subject = 'python發(fā)郵帶img的郵件測(cè)試' #主題
10
11 #創(chuàng)建一個(gè)帶附件的實(shí)例
12 msg =MIMEMultipart()13 msg['Subject'] =subject14 msg['From'] =sender15 msg['To'] =receivers16
17 #創(chuàng)建正文
18 msg.attach(MIMEText('使用python smtplib模塊和email模塊自動(dòng)發(fā)送郵件測(cè)試','plain','utf-8'))19
20 #創(chuàng)建圖片附件
21 importos22 img_file = open(os.getcwd()+"/a4.jpg",'rb').read()23 msg_img =MIMEImage(img_file)24 msg_img.add_header('Content-Disposition','attachment', filename = "a4.jpg")25 msg_img.add_header('Content-ID', '<0>')26 msg.attach(msg_img)27
28 try:29 s = smtplib.SMTP_SSL('smtp.qq.com',465)30 s.set_debuglevel(1) #輸出發(fā)送郵件詳細(xì)過(guò)程
31 s.login(sender,passwd)32 s.sendmail(sender,receivers,msg.as_string())33 print('Send Succese')34
35 except:36 print('Send Failure')
發(fā)送帶附件的郵件:
1 importsmtplib2 from email.mime.text importMIMEText3 from email.mime.multipart importMIMEMultipart4 from email.header importHeader5
6 sender = 'xxxxxx@qq.com' #發(fā)件郵箱
7 passwd = 'lkugmgywydhfff' # 郵箱授權(quán)碼
8 receivers = 'xxxxxx@qq.com' #收件郵箱
9
10 subject = 'python發(fā)帶附件的郵件測(cè)試' #主題
11 #創(chuàng)建一個(gè)帶附件的實(shí)例
12 msg =MIMEMultipart()13 msg['Subject'] =subject14 msg['From'] =sender15 msg['To'] =receivers16
17 #創(chuàng)建正文,將文本文件添加到MIMEMultipart中
18 msg.attach(MIMEText('使用python smtplib模塊和email模塊自動(dòng)發(fā)送郵件測(cè)試','plain','utf-8'))19
20 #構(gòu)造附件1,傳送當(dāng)前目錄下 文件
21 att1 = MIMEText(open('testdata.xlsx','rb').read(),'base64','utf-8') #rb以二進(jìn)制方式讀取
22 #att1["Content-Type"] = 'application/octet-stream'
23 #filename為附件名稱(chēng),可以任意寫(xiě),寫(xiě)什么名字,郵件中顯示什么名字
24 att1["Content-Disposition"] = 'attachment; filename = "testdata.xlsx"'
25 #將附件添加到MIMEMultipart中
26 msg.attach(att1)27
28 #構(gòu)造附件2
29 att2 = MIMEText(open('db.cfg','rb').read(),'base64','utf-8')30 #att2["Content-Type"] = 'application/octet-stream'
31 att2["Content-Disposition"] = 'attachment; filename = "db.cfg"'
32 #將附件添加到MIMEMultipart中
33 msg.attach(att2)34
35 try:36 s = smtplib.SMTP_SSL('smtp.qq.com',465)37 s.set_debuglevel(1) #輸出發(fā)送郵件詳細(xì)過(guò)程
38 s.login(sender,passwd)39 s.sendmail(sender,receivers,msg.as_string())40 print('Send Succese')41
42 except:43 print('Send Failure')
總結(jié)
以上是生活随笔為你收集整理的python安装email模块_Python使用SMTP模块、email模块发送邮件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python微信验证码收不到_给微信回复
- 下一篇: python ndarray find_