python SMTP实现发送带附件电子邮件
本文实例为大家分享了pythonSMTP发送带附件电子邮件的具体代码,供大家参考,具体内容如下
可采用email模块发送电子邮件附件。发送一个未知MIME类型的文件附件其基本思路如下:
1.构造MIMEMultipart对象做为根容器
2.构造MIMEText对象做为邮件显示内容并附加到根容器
3.构造MIMEBase对象做为文件附件内容并附加到根容器
a.读入文件内容并格式化
b.设置附件头
4.设置根容器属性
5.得到格式化后的完整文本
6.用smtp发送邮件
具体内容参见
importsmtplib
importemail.MIMEMultipart
importemail.MIMEText
importemail.MIMEBase
importos.path
From="senderaddress"
To="recipients"
file_name="filename"
server=smtplib.SMTP("smtpserveraddress")
server.login("username","password")#仅smtp服务器需要验证时
#构造MIMEMultipart对象做为根容器
main_msg=email.MIMEMultipart.MIMEMultipart()
#构造MIMEText对象做为邮件显示内容并附加到根容器
text_msg=email.MIMEText.MIMEText("thisisatesttexttotextmime")
main_msg.attach(text_msg)
#构造MIMEBase对象做为文件附件内容并附加到根容器
contype='application/octet-stream'
maintype,subtype=contype.split('/',1)
##读入文件内容并格式化
data=open(file_name,'rb')
file_msg=email.MIMEBase.MIMEBase(maintype,subtype)
file_msg.set_payload(data.read())
data.close()
email.Encoders.encode_base64(file_msg)
##设置附件头
basename=os.path.basename(file_name)
file_msg.add_header('Content-Disposition',
'attachment',filename=basename)
main_msg.attach(file_msg)
#设置根容器属性
main_msg['From']=From
main_msg['To']=To
main_msg['Subject']="attachtest"
main_msg['Date']=email.Utils.formatdate()
#得到格式化后的完整文本
fullText=main_msg.as_string()
#用smtp发送邮件
try:
server.sendmail(From,To,fullText)
finally:
server.quit()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。