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()
python利用SMTP协议发送报文
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 2017年12月31日更新 代码更新为最新的OOP代码,测试环境Python3.6,成功发送邮件。 Socket编...
- 异常一: javax.mail.MessagingException: Could not convert soc...
- 讲在前面 此教程是笔者通过laravel学院的教程的学习总结,总结了几个错误,以及laravel学院中没讲到的点。...