python利用SMTP协议发送报文

Paste_Image.png
Paste_Image.png
图片发自简书App
import smtplib 
from email.mime.multipart import MIMEMultipart 
#连接邮件标题,邮件的文字内容,邮件的附件三个内容
from email.mime.text import MIMEText 
#邮件主题部分的文字内容
from email.mime.application import MIMEApplication 
#传输附件中的应用
#以二进制传输文件,以开头的字节流判断文件类型
_user = "XXXXXXXXX@qq.com"
_pwd = "XXXXXXXX"          
#本处使用QQ邮箱的第三方应用验证码
_to  = "XXXXXXX@qq.com"
   
#如名字所示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()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容