python利用SMTP协议发送报文

python利用SMTP协议发送报文_第1张图片
Paste_Image.png
python利用SMTP协议发送报文_第2张图片
Paste_Image.png
python利用SMTP协议发送报文_第3张图片
图片发自App
import smtplib 
from email.mime.multipart import MIMEMultipart 
#连接邮件标题,邮件的文字内容,邮件的附件三个内容
from email.mime.text import MIMEText 
#邮件主题部分的文字内容
from email.mime.application import MIMEApplication 
#传输附件中的应用
#以二进制传输文件,以开头的字节流判断文件类型
_user = "[email protected]"
_pwd = "XXXXXXXX"          
#本处使用QQ邮箱的第三方应用验证码
_to  = "[email protected]"
   
#如名字所示Multipart就是分多个部分 
msg = MIMEMultipart() 
msg["Subject"] = "don't panic"
msg["From"]  = _user 
msg["To"]   = _to 
   
#---这是文字部分--- 
part = MIMEText("乔装打扮,不择手段",_subtype='html',_charset='utf-8') 
msg.attach(part) 
   
#---这是附件部分--- 
#xlsx类型附件 
path='E:\\XXXXXX\\foo.xlsx'  #要打两个\才可以!
part = MIMEApplication(open(path,'rb').read()) 
part.add_header('Content-Disposition', 'attachment', filename="foo.xlsx") 
msg.attach(part) 
   
#jpg类型附件 
part = MIMEApplication(open(r'E:\XXXXXXXXX\啥.jpg','rb').read()) 
part.add_header('Content-Disposition', 'attachment', filename=('gbk','',"啥.jpg"))
#发送含有中文的邮件需要加入gbk,如果是windows的话,因为windows的文件名用的是gbk编码
msg.attach(part) 
   
#pdf类型附件   发送失败 原因不详.......
#part = MIMEApplication(open(r'E:\XXXXXX\foo.pdf','rb').read()) 
#part.add_header('Content-Disposition', 'attachment', filename="foo.pdf") 
#msg.attach(part) 
   
s = smtplib.SMTP_SSL("smtp.qq.com",465)
#连接smtp邮件服务器,端口默认是25 
s.login(_user, _pwd)   #登陆服务器 
s.sendmail(_user, _to, msg.as_string())#发送邮件 
s.close()

你可能感兴趣的:(python利用SMTP协议发送报文)