from email.header import Header from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from smtplib import SMTP_SSL import time email_sender=''#这里是qq邮箱 email_pwd=''#这里是授权码,不知道qq邮箱怎么获取授权码的同事可以百度一下 email_receiver='3270740288@qq.com' email_sever=SMTP_SSL('smtp.qq.com')#连接qq邮箱服务器 email_sever.login(email_sender,email_pwd)#登录邮箱 email_text=MIMEText('来自小陆的问候','plain','utf-8')#邮件的内容,和内容的格式。这里是txt/plain,纯文本类型。 email_liction=MIMEMultipart()#创建一个带附件的事例 email_liction['Subject']=Header('漫漫长路','utf-8')#标题的内容和编码格式 email_liction['From']=email_sender email_liction['To']=email_receiver email_liction['Date']=time.ctime() email_file=MIMEApplication(open('F:\\temp.html', 'rb').read())#第一个参数打开文件read()方法读出所有内容,刚好是字符串格式,第二个参数是希望的编码,这种方法比较简单 email_file.add_header('Content-Disposition', 'attachment', filename='temp.html')#这里添加一个标题,Content-Disposition,attachment说明是一个附件,filename说明文件名.mail里有一个get_filename()的方法可以得到附件里的文件名。 #filename不能随便命名,因为后缀名会影响到文本的格式。例如把"html"换成"txt",最后加载到QQ邮件的附件就是‘temp.txt’。 email_liction.attach(email_text)#把我们刚才写的邮件内容加进去 email_liction.attach(email_file)#现在我们把编码好的附件也加进去 email_sever.sendmail(email_sender,email_receiver,email_liction.as_string())#由于senemail要传String类型,所以要用.as_string()把内容组合成字符串 email_sever.quit()